#include "stdio.h"
//#pragma pack(1) //多少个字节对齐数
//用#pragma pack(1)这个限定多少个字节对齐,结果自己算
struct _TestStruct0
{
}_TestStruct0, *_pTestStruct0;
struct _TestStruct1
{
double d1;
char ch1;
int i1;
}_TestStruct1, *_pTestStruct1;
struct _TestStruct2
{
char ch1;
double d1;
int i1;
}_TestStruct2, *_pTestStruct2;
struct _TestStruct3
{
char ch1;
int i1;
double d1;
}_TestStruct3, *_pTestStruct3;
class _TestClass
{
}_TestClass, *_pTestClass;
int main()
{
printf("_pTestClass:%d\n", sizeof(_pTestClass)); //4指针
printf("_TestClass:%d\n", sizeof(_TestClass)); //空结构体 保存地址 字节1
printf("_pTestStruct0:%d\n", sizeof(_pTestStruct0)); //4指针
printf("_TestStruct0:%d\n", sizeof(_TestStruct0)); //空结构体 保存地址 字节1
printf("_pTestStruct1:%d\n", sizeof(_pTestStruct1)); //4指针
printf("_TestStruct1:%d\n", sizeof(_TestStruct1)); //16结构体 8(double) + 1(char) + 4( int) + 3(对齐)
printf("_pTestStruct2:%d\n", sizeof(_pTestStruct2)); //4指针
printf("_TestStruct2:%d\n", sizeof(_TestStruct2)); //24结构体 1(char) +7(对齐)+ 8(double) + 4( int) + 4(对齐)
printf("_pTestStruct3:%d\n", sizeof(_pTestStruct3)); //4指针
printf("_TestStruct3:%d\n", sizeof(_TestStruct3)); //16结构体 1(char) +3(对齐)+ 4( int) + 8(double)
return 0;
}