У меня есть код, который использует #pragma pack (push, 8), но, похоже, он не вступает в силу, но я не могу понять, что вызывает эту проблему.
Например, посмотрите на следующий код.
#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".
Так что я предполагаю, что это связано с некоторыми настройками, но не смог понять. Я буду очень признателен, если кто-нибудь может дать мне подсказку. Спасибо.