一个long类型的值如何能直接赋给4个unsigned char数据成员的结构体
一个long类型的值不能直接付给4个unsigned char数据成员的结构体
typedef struct
{
char Data[4];
}StructA;
StructA A;
long B;
B=0x11121314;
A=B;
因为long和结构体StructA数据类型不兼容,所以不能直接赋值
有没有好的方法直接赋值
不要告诉我,用分离的方法:
A.Data[0]=B>>24;
A.Data[1]=(B&0xFF0000)>>16;
A.Data[2]=(B&0xFF00)>>8;
A.Data[3]=B&0xFF;
我想请教更好方法,或者有更简洁的程序实现也可以看看
[解决办法]
方法1
*(long*)A.Data = B;
方法2
typedef struct
{
union {
char Data[4];
long dwData;
};
}StructA;
StructA A;
long B;
B=0x11121314;
A.dwData = B;
[解决办法]
支持用联合来做
也可以用memcpy