在msdn上为cl编译器选项/ Zp,提到"打包8字节边界上的结构(默认)。"这是否意味着如果数据类型的大小>默认情况下为8个字节(没有编译器选项或编译指示包),它不会自然对齐,而是具有8字节对齐。如果是的话,是GCC / clang的情况吗?
我使用-fpack-struct
和__uint128_t
检查了GCC,它没有任何此类默认值。例如sizeof(tStruct)
是32和24:
struct tStruct {
uint64_t a;
__uint128_t b;
};
我无法在Windows上检查相同内容,因为它没有提供任何数据类型> 8个字节。