// test.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#pragma pack(2)
typedef struct
{
char bb2;//1个字节对齐 1
double aa2; //8个字节对齐
} testlength1;
//0 1 2 3 4 5 6 7 89
//1 0 0 0 0 0 0 0 11111111 // 16
//0 1 2 3 4 5 6 7 89
//1 0 11111111 //pack(2) 10
//0 1 2 3 4 5 6 7 89
//1 0 0 0 11111111 //pack(4) 12
//0 1 2 3 4 5 6 7 89
//1 11111111 //pack(1) 9
typedef struct
{
char bb2;//1个字节对齐 1
int aa2; //4个字节对齐
} testlength2;
//0 1 2 3 4567
//1 0 0 0 1111 //
//0 1 2345
//1 0 1111 //pack(2)
//0 1234
//1 1111 //pack(1)
typedef struct
{
char bb2;//1个字节对齐 1
char bb3;
char bb4;
int aa2; //4个字节对齐
} testlength3; //0 1 2 3 4567
//1 1 0 0 1111 //pack(4)
//0 1 2 3 4567
//1 1 1 0 1111 //pack(2)
//0 1 2 3456
//1 1 1 1111 //pack(1)
int length1 = sizeof(testlength1);
int length2 = sizeof(testlength2);
int length3 = sizeof(testlength3);
int main(void)
{
printf("length1 = %d.\n",length1);
printf("length2 = %d.\n",length2);
printf("length3 = %d.\n",length3);
return 0;
}
#include "stdafx.h"
#pragma pack(2)
typedef struct
{
char bb2;//1个字节对齐 1
double aa2; //8个字节对齐
} testlength1;
//0 1 2 3 4 5 6 7 89
//1 0 0 0 0 0 0 0 11111111 // 16
//0 1 2 3 4 5 6 7 89
//1 0 11111111 //pack(2) 10
//0 1 2 3 4 5 6 7 89
//1 0 0 0 11111111 //pack(4) 12
//0 1 2 3 4 5 6 7 89
//1 11111111 //pack(1) 9
typedef struct
{
char bb2;//1个字节对齐 1
int aa2; //4个字节对齐
} testlength2;
//0 1 2 3 4567
//1 0 0 0 1111 //
//0 1 2345
//1 0 1111 //pack(2)
//0 1234
//1 1111 //pack(1)
typedef struct
{
char bb2;//1个字节对齐 1
char bb3;
char bb4;
int aa2; //4个字节对齐
} testlength3; //0 1 2 3 4567
//1 1 0 0 1111 //pack(4)
//0 1 2 3 4567
//1 1 1 0 1111 //pack(2)
//0 1 2 3456
//1 1 1 1111 //pack(1)
int length1 = sizeof(testlength1);
int length2 = sizeof(testlength2);
int length3 = sizeof(testlength3);
int main(void)
{
printf("length1 = %d.\n",length1);
printf("length2 = %d.\n",length2);
printf("length3 = %d.\n",length3);
return 0;
}