我为一些数据结构编写了一个解析器,经过几个小时的调试后我发现问题是Visual Studio没有像我说的那样解释结构.似乎使用了一些"填充"
struct foo {
unsigned char a; //0x00
unsigned char b; //0x01
unsigned int c; //0x02
unsigned int d; //0x06
unsigned int e; //0x0A
unsigned int f; //0x0E
//0x12
};
Run Code Online (Sandbox Code Playgroud)
我期望"sizeof(foo)= 4*4 + 2 = 18",但我得到"sizeof(foo)= 20".是否有可能为这个特殊结构转换填充?我试过了
__declspec(align(1)) struct foo { ...
Run Code Online (Sandbox Code Playgroud)
但它不起作用.谢谢您的帮助.