我在qnx下用struct定义结构体如下
struct MyStru
{
char diat[3];
unsigned int sys;
char us[2];
}data;
当我用sizeof判断其大小时,为什么是8而不是7呢,怎样定义,会是7。
而且我用指针给此结构体赋值,当读取sys时,其结果是此结构的第5、6字节,而不是第4、5字节,为什么,该如何?
char *p;
int i;
p=&data;
for(i=1;i<=sizeof(struct MyStru);i++)
*p++ = i;
printf("sys:%d
",data.sys);
此处打印应该为(0x04,0x05) 1284,而实际为(0x05,0x06)1541
为什么?该如何?