定义结构体
struct aaa
{
char sz1[5];
char sz2[10];
};
struct bbb
{
char sz1[5];
char sz2[10];
char c1;
};
定义一个数组:char szBuf[100];
问题:
假设szBuf[0]~szBuf[4]存放的是我要赋给结构体aaa中的sz1的数据,szBuf[5]~szBuf[14]存放的是我要赋值给aaa中sz2的数据,那么我可以用memcpy(&aaa, szBuf, sizeof(struct aaa))吗???
又假设zBuf[0]~szBuf[4]存放的是我要赋给结构体bbb中的sz1的数据,szBuf[5]~szBuf[14]存放的是我要赋值给bbb中sz2的数据,szBuf[15] = ‘0‘存放的是要给bbb中c1的,那么我可以用memcpy(&bbb, szBuf, sizeof(struct bbb))吗???
这个问题一直困扰我,请大神解答一下,急~~
只要都是char型就都可以吗,不管是char数组还是char字符,是吗?
追答是的,只要是x86下的C编译器,都可以,单片机上我就不知道了
X86下的 你不需要指定#pragma pack 里面如果都是char类型的,无论数组与否(一个数组就相当于多个char)都是紧密连着的