struct test
{
int a;
float b;
char c;
double d;
};
这个结构中 double 数据最长(64位),编译器处理的时候会把结构中的数据对齐,即与最长的那个数据对齐,使每个数据长度都一样。
// 下面是32位的数据对齐
struct test {
unsigned char ch;
int num;
};
struct a = {255,
256};
a.ch
:
00000000000000000000000011111111
/* 红色部分为浪费的空间 */
a.num
:
00000000000000000000000100000000
数据的位对齐。
[[italic] 本帖最后由 cosdos 于 2007-11-27 14:51 编辑 [/italic]]