Lis*_*ing 18 c++ visual-studio-2010 visual-studio
我为一些数据结构编写了一个解析器,经过几个小时的调试后我发现问题是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)
但它不起作用.谢谢您的帮助.
Han*_*ant 37
使用该#pragma pack
指令:
#pragma pack(push, 1)
struct foo {
// etc..
};
#pragma pack(pop)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8920 次 |
最近记录: |