我对以下代码感到非常困惑:
typedef struct
{
Uint16 first:8; // has a size of 8 bit
Uint16 second:8; // has a size of 8 bit
Uint16 third; // has a size of 32 bit; what's wrong here?
} TSomeStruct;
我预计“第三”的大小为 16 位而不是 32 位。我确信错误一定是我自己造成的。
背景:这不是我的代码库,我正在对其进行验证。因为它是为嵌入式系统和我没有的专有编译器编写的,所以我只是使用“-fdump-translation-unit”选项生成语法树并对其进行验证。但是 Uint16 在 GCC 中也应该是 16 位长,所以这不应该是问题,对吧?