我有这个示例代码,我用pack装饰,以确保其大小为5字节(4为int,1为char).
但它打印出struct的大小是8字节.
#pragma pack push
#pragma pack 1
struct mystruct
{
int x;
char y;
};
#pragma pack pop
//static_assert(sizeof(mystruct) == 5, "Size of mystruct should be 5 byte.");
int _tmain(int argc, _TCHAR* argv[])
{
int x=sizeof(mystruct);
printf("size of struct is %d\n",x);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么te pck不工作?
如何确保struct的大小始终为5.
你的pragma语法错了.
试试这个:
#pragma pack(push,1)
...
#pragma pack(pop)
Run Code Online (Sandbox Code Playgroud)
演示.