【发布时间】:2014-05-14 20:10:53
【问题描述】:
在 C 中,有时结构的某些成员往往具有未对齐的偏移量,例如 HPUX community 中的这个线程
在这种情况下,建议使用零宽度位字段来对齐(未对齐)下一个成员。 什么情况下会发生结构件错位?在字边界对齐成员的偏移量不是编译器的工作吗?
【问题讨论】:
-
请引用您的来源。 (“建议一个”?由谁?)。编译器的工作是根据需要正确对齐成员,并且编译器做得很好。所以没有偏移偏移的趋势。
-
@rici 好吧,我正在跟进HPUX community 中的一个问题,该问题是由于结构的成员未对齐而生成的核心转储。你可以看到它确实发生了,而且人们确实被它所困扰。
-
@ZanLynx,我在发帖前确实看过那个帖子,但它没有回答我关于为什么编译器不只对齐结构的某些成员的问题。
-
编译器自动为结构成员提供他们需要的任何对齐方式。您引用的线程中的代码可能错误地假设比成员实际要求的对齐更严格。
-
@Phalgun:请编辑您的问题以包含该链接。否则非常很难知道你在说什么。
标签: c structure bit-fields