|
在编程中使用typedef目的一般有两个: 一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。
typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 |
struct A
{ char a; //1+3 (放在地址号为4的倍数的字节上)
int b:/4
}; //sizeof: 8
struct B
{ char a; // 1+1 (放在地址号为2的倍数的字节上)
short b; // 2
int c; // 4
}; //sizeof: 8
为什么struct C的大小为8
struct C
{ int a; //4
char b;//1
}; //sizeof: 5+3 (防止定义数组)
求以下结构体的sizeof:
1.
struct I
{ int a; // 4
struct II
{ float b; //2
int c; //4+2 (对齐:8)
}d;
int *p; //4
short e; //2+2(对齐:8)
}; // sizeof: 8+8+4=20
2.
struct I
{ int a;// 4
struct II
{ float b; //2
int c; //4 sizeof:10
}double d; (double:8的倍数, sizeof=16)
int *p; //4
short e; //2+2(对齐:8)
}; // sizeof: 16+8=24