假设我有一个结构:
struct myStruct
{
int a;
short b;
char c;
};
在 Windows 中,MSDN 声明 int
占用 4 个字节、short
占用 2 个字节和char
占用 1 个字节。总共最多 7 个字节。
我知道大多数编译器会用未指定的字节数填充结构以改善对齐。所以,当我执行这个程序时,
#include <stdio.h>
int main(void) {
printf("%d\n", sizeof(struct myStruct));
return 0;
}
我得到8
. 这意味着填充了 1 个字节。
有什么方法可以让我可以维护地确定struct
代码中的大小(没有加起来单独sizeof
的 s)?
我问这个是因为以后,如果我需要更改我的结构以包含大约十五个元素,并且如果我再添加五个结构,我所有的struct
sizeof
s 都会改变,导致事情变得混乱。