enum Sex
{
//枚举的可能取值
male,//0--也可自己设置初始值male=2
female,//1
secret//2
};
int main()
{
enum Sex s = male;
return 0;
}
以上定义的enum Sex是枚举类型,{}中的内容是枚举类型的可能取值,也叫做枚举常量,这些可能取值都是有值的,默认从0开始,依次递增,也可以在定义的时候赋初值
枚举的优点
1.增加的代码的可读性和可维护性
2.和#define定义的标识符比较枚举有类型检查,更加严谨
3.防止了命名污染(封装)
4.便于调试
5.使用方便。一次可以定义多个常量
联合(共用体)
定义:联合也是一种特殊的自定义类型,这种类型定义的变量也包含一系列的成员,特征说这些成员公用同一块空间(所以联合也叫共用体)
union Un
{
char c;
int i;
};
int main()
{
union Un u;
printf("%d", sizeof(u));//4
return 0;
}
联合的特点:联合的成员是公用同一块内存空间,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保证容纳最大的那个成员)
联合大小的计算:
1.联合的大小至少是最大成员的大小
2.当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍