【发布时间】:2014-03-10 16:27:39
【问题描述】:
我想知道,如果手动填充结构,以便每个成员在其大小的倍数处对齐,并且所有对象都具有已知的显式宽度,那么我可以在多大程度上期望二进制布局完全符合“预期” /打算一个?也许有一些编译器特定的选项来确保布局与声明的完全一致?
IIRC C 标准不允许任何重新排序,因此只有最终的额外填充存在问题。如果结构根据自己的对齐规则进行填充,编译器是否需要添加填充?
【问题讨论】:
-
请注意,类型的对齐要求可能与其大小不同。
-
@nos - 我的意思是只针对原语。结构是另一回事。
-
@nos - 你能举个例子吗?
标签: c struct offset member memory-address