2
我有一個使用#pragma pack(push,8)的代碼,但它似乎沒有起作用,但我無法弄清楚是什麼導致了這個問題。什麼禁用#pragma pack(push)?
例如,看下面的代碼。
#include <windows.h>
#include <stdio.h>
#pragma pack(push, 8)
typedef struct _MY_DATA {
LARGE_INTEGER a;
LARGE_INTEGER b;
ULONG count;
} MY_DATA;
#pragma pack(show)
#pragma pack(pop)
int main()
{
MY_DATA data;
printf("data size:%d\n", sizeof(data));
return 0;
}
這將返回「數據大小:24」,但我在使用其他應用程序相同的代碼是由Visual Studio的管理,有我收到「數據大小:20」。
所以我假設它必須做一些設置,但無法弄清楚。如果有人能給我一些提示,我會非常感激。謝謝。