A;
struct B stB; struct PB stPB;
?
printf("sizeof(A) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stA), &stA.c, &stA.s, &stA.i); printf("sizeof(PA) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stPA), &stPA.c, &stPA.s, &stPA.i);
printf("sizeof(B) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stB), &stB.c, &stB.s, &stB.i); printf("sizeof(PB) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stPB), &stPB.c, &stPB.s, &stPB.i);
?
return 0;
}
/******************************************************************************
Copyright by Javacode007, All rights reserved!
Filename : structsize.c
Author : Javacode007
Date : 2012-8-5
Version : 1.0
Description : 结构体类型大小测试
******************************************************************************/
#include
struct A
{
char c;
short s;
int i;
};
#pragma pack(1) /*指定按1字节对齐*/
struct PA
{
char c;
short s;
int i;
};
#pragma pack() /*取消指定对齐,恢复缺省对齐*/
struct B
{
char c;
int i;
short s;
};
#pragma pack(2) /*指定按2字节对齐*/
struct PB
{
char c;
int i;
short s;
};
#pragma pack() /*取消指定对齐,恢复缺省对齐*/
int main()
{
struct A stA;
struct PA stPA;
struct B stB;
struct PB stPB;
printf("sizeof(A) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stA), &stA.c, &stA.s, &stA.i);
printf("sizeof(PA) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stPA), &stPA.c, &stPA.s, &stPA.i);
printf("sizeof(B) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stB), &stB.c, &stB.s, &stB.i);
printf("sizeof(PB) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stPB), &stPB.c, &stPB.s, &stPB.i);
return 0;
}
? 输出结果: 
|