我已被告知了:
[ABI] 保证结构的精确布局、每个成员的字节偏移、哪些位用于位字段、填充的位置和数量等......
但我一直认为填充和对齐是未指定且不可靠的。
Itanium ABI(GCC 使用)实际上是否指定了这些东西(据我所知,它似乎没有超出指定范围)?
如果确实如此,那么诸如此类的选项如何__attribute__ ((packed))
适应呢?他们最终会通过改变事物的对齐方式来破坏 ABI 吗?
或者,正如引用者所暗示的那样,只是在工具链之间进行未指定的打包,但实际上是可靠且可预测的在使用某个 ABI然后,再一次,像这样的东西是如何__attribute__ ((packed))
适应的?