[关闭]
@natsumi 2016-04-20T08:50:45.000000Z 字数 527 阅读 1217

内存对齐

C


【内存对齐(一)】#pragma pack的用法及大小的计算
http://www.cppblog.com/deercoder/archive/2011/03/13/141717.html

上文中总结(1)中一句话不太理解

pack>=2的时候最终的大小需要时(是?)2的倍数,有时候需要向上取大为2的倍数。

如果结构体最后一个变量是char型,也会是2的倍数么?
待测试

如果#pragma pack不加参数,会使用默认值,默认是多少?
通常是8
可以用#pragma pack(show)显示出来,见下文
pragma pack相关命令
http://www.cnblogs.com/s7vens/archive/2012/03/06/2382236.html

【内存对齐(二)】__declspec( align(#) )的用法和大小计算
http://www.cppblog.com/deercoder/archive/2011/03/13/141747.html

作者说Dev C++不支持这种用法,gcc也不支持= =
gcc编译都不过啊= =

这段代码在VS 2010中的运行结果是,sizeof(D)的大小为32,而在Dev C++,C-Free 5.0以及gcc中的结果都似乎20

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注