结构体字节长度计算
定义一个如下的结构体:
struct node{
int a;
char b;
unsigned short k[3];
unsigned int q;
}test1;
int a;
a=sizeof(test1);
请问a的数值怎么是16,不是4+1+3*2+4=15么??
------解决思路----------------------
使用sizeof获取类型的字节大小,至于字节对齐问题,知道即可。
------解决思路----------------------
结构体会有字节对齐问题,如果你想让它紧凑的排列,那么可以这样:
#pragma pack(push, 1)
struct node{
int a;
char b;
unsigned short k[3];
unsigned int q;
}test1;
#pragma pack(pop)
引用:定义一个如下的结构体:
struct node{
int a;
char b;
unsigned short k[3];
unsigned int q;
}test1;
int a;
a=sizeof(test1);
请问a的数值怎么是16,不是4+1+3*2+4=15么&#