在8/16位编译器上面使用enum结构时候需要注意与32位编译器占用字节的问题。
在8/16其占用的是2bytes,而32则是4bytes.
因此为了其可移植性强,一般在enum结构体后面强制其占用4个字节。
如下定义
在8/16其占用的是2bytes,而32则是4bytes.
因此为了其可移植性强,一般在enum结构体后面强制其占用4个字节。
如下定义
typedef enum
{
E_A = 0,
E_B,
E_C,
UN_DEF = 0xFFFFFFFF
}E_TEST;
在Google Protobuf使用过程中也会遇到如此问题,也需要留意..