????C++???и?pragma pack ??????????и??
// ConsoleApplication1.cpp : ??????????ó????????
//
#include "stdafx.h"
#include <iostream>
using namespace std;
#pragma pack(push) //?????????
#pragma pack(4)//?趨?4??????
struct TEST0
{
char m1;
double m4;
int m3;
};
#pragma pack(pop)//?????????
#pragma pack(push)
#pragma pack(2)<span style="white-space:pre">   </span>//#pragma pack(1)???в??????
struct TEST1    //12
{
char a;
int b;
char c;
};
#pragma pack(pop)
struct TEST2    //8
{
char a;
char b;
int c;
};
struct TEST3    //8
{
char a;
char b;
char c;
int d;
};
struct TEST4    //12
{
char a[5];
int b;
};
struct TEST5    //8 + 8 + 8 = 24
{
double a; //8
char b; //4
int c; //4??location the b memery
char d[5]; //5
};
int _tmain(int argc?? _TCHAR* argv[])
{
struct TEST0 t0;
cout << sizeof(t0) << endl;
struct TEST1 t1;
struct TEST2 t2;
struct TEST3 t3;
struct TEST4 t4;
struct TEST5 t5;
cout << sizeof(t1) << endl << sizeof(t2) << endl;
cout << sizeof(t3) << endl << sizeof(t4) << endl << sizeof(t5) << endl;
return 0;
}
???????????????? ??????????????????pack???????????ж???
??????TEST1 pack??????1??2???в????
???????1??????6?????
????a b1 b2 b3
????b4 c
???????2??? ???8?????
????a ax b1 b2
????b3 b4 c cx