最近我在Clang 9.0上观察到alignof和__ alignof返回的unsigned long long值不同,并且在https://reviews.llvm.org/D54814讨论了相同的值。我知道类型对齐方式,但从未遇到过“最小对齐方式”和“首选对齐方式”。
有人可以帮助我了解这些确切含义是什么吗?谢谢。
最小对齐方式是(在给定平台上)不会崩溃的对齐方式。在x86-64上,它是一个字节。在PowerPC或Sparc上,它可能是4或8个字节。
[首选对齐方式是通常的对齐方式,例如由于处理器总线或CPU缓存。在unsigned long long
的x86-64上,它可能是8个字节。对齐方式较差的访问都会降低性能。