Я пишу парсер для некоторой структуры данных, после нескольких часов отладки я обнаружил, что проблема в том, что 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
};
Я ожидал "sizeof (foo) = 4 * 4 + 2 = 18", но я получил "sizeof (foo) = 20".Есть ли возможность отключить заполнение только для этой специальной структуры?Я пытался
__declspec(align(1)) struct foo { ...
, но это не работает.Спасибо за вашу помощь.