struct _THUNDER{
int iVersion;
char cTag;
char cAdv;
int iUser;
char cEnd;
}Thunder;
int sz = sizeof(Thunder);
|
1
|
运算结果为
16:原因是因为分别 占字节数 int 4 char 1 char 1 int 4 char 1
对齐方式 4 1 1 ② 4 1 ③
圆圈的数代表补充的空字节
对齐方式: 前面的长度必须为当前要添加的字符长度的整数倍,到最后还要补齐使得最终长度是最长的字符的整数倍
再举一个例子
#include<iostream>
using namespace std; struct s { int a; char b; long c; }; int main() { cout <<sizeof(s); system("pause"); return 0;
}
|