Добрый день!
Встретил в коде такую строку:
#pragma pack(push, 1)
Попробовал скомпилировать с push и без, результат одинаковый. Подскажите пожалуйста, если есть разница, то в чем?
Вот пример:
#include <iostream>
using namespace std;
typedef struct{
int a = 1;
char b = 'x';
long c = 0;
} A;
#pragma pack(push, 1)
typedef struct{
int a = 1;
char b = 'x';
long c = 0;
} B;
#pragma pack(2)
typedef struct{
int a = 1;
char b = 'x';
long c = 0;
} C;
#pragma pack(push, 2)
typedef struct{
int a = 1;
char b = 'x';
long c = 0;
} D;
int main() {
// your code goes here
A a;
B b;
C c;
D d;
cout << "A = " << sizeof(a) << endl;
cout << "B = " << sizeof(b) << endl;
cout << "C = " << sizeof(c) << endl;
cout << "D = " << sizeof(d) << endl;
return 0;
}
и вывод:
A = 12
B = 9
C = 10
D = 10