#include <stdio.h>
struct T {
char a;
int *d;
int b;
int c : 20;
double e;
};
int main()
{
T t = { 'A', NULL, 0x01020304, 0x123456, 15.0 };
printf("sizeof(T) = %d\n", sizeof(T));
printf("sizeof(t.d) = %d\n", sizeof(t.d));
printf("addr(t) = %x\n", &t);
printf("addr(t) %% 8 = %d\n", (unsigned long (&t)) % 8);
return 0;
}win7-64 VS2015(32-bit)


本文展示了一个C语言中结构体内存对齐的例子,并通过一个具体实例解释了结构体成员如何影响整体大小及对齐方式。该程序使用VS2015 (32-bit) 编译环境下运行。
548

被折叠的 条评论
为什么被折叠?



