首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中sizeof 用法跟疑惑

2012-12-21 
C语言中sizeof 用法和疑惑利用字节对齐原理解释不通,能有人给解释一下么?VS2005 32bitcpu??#include stdi

C语言中sizeof 用法和疑惑

利用字节对齐原理解释不通,能有人给解释一下么

?

VS2005 32bitcpu

?

?

#include "stdio.h"
#include "stdlib.h"

#pragma pack(4)

struct LALA
{
?short st2;
?char c1;
?short st3;
?char c4;
?short st;
?char c2;
?char c3;

?long ll;
};
//============================下面的疑惑========================
struct LALA2
{
?char c1;
?short s1;
?char c2;
?long l1;
};

struct tagA
{
?char a;
?short b;
?char d;
};

typedef struct example
{
?unsigned short usA;
?unsigned long? ulA;
?unsigned short usB;
?unsigned char? ucA;
?unsigned short usC;
}example_s;

typedef struct example2
{
?? unsigned long? ulA;
?? unsigned short usA;
?? unsigned short usB;
?? unsigned short usC;
?? unsigned char? ucA;
?? unsigned char? ucReserved;

}example_s2;
void main()
{
?LALA lala;

?printf("sizeof(lala):%d\n",sizeof(lala));(16)

? LALA2 lala2;

?printf("sizeof(lala2):%d\n",sizeof(lala2));(12) //利用字节对齐原理解释不通,能有人给解释一下么

?struct tagA sta,stb[2];
?printf("sizeof(stb):%d\n",sizeof(stb));(12)

?getchar();


}

热点排行