To what extent does the Itanium ABI really specify padding and alignment?
问题 I've been told: [ABIs] guarantee the exact layout of the struct, byte offset of every member, which bits are used for bit fields, where and how much padding there is, etc... But I've always believed that padding and alignment were unspecified and unreliable. Does the Itanium ABI (which GCC uses) in fact specify these things (as far as I can tell, it doesn't appear to beyond specifying ranges)? And if it does, how do options like __attribute__ ((packed)) fit into that? Do they ultimately break