一.枚举
枚举:一个被命名的整型常数的集合,关键字为:enum
枚举的定义与赋值:
enum Day//关键字加枚举名
{
nan, //注意:成员结束符(标识符)不是分号(;)而是逗号
nv //最后一个成员后边没有标识符
};
注意:1.像这样没有进行初始化,则代表从第一个成员起,依次赋值为0,1,2…。但当其某个成员赋值(初始化)后,其后边的成员按加1的规则确定其值。eg:
enum Num
{
a,
b=0,
c,
d=3,
e
};
则a=0,b=0,c=1,d=3,e=4;
2.赋值时也可让其等于某个负数,规则仍然不变。
3.枚举变量的赋值只能取已经定义好的枚举列表中的某个值,
eg:
//接上述代码,创建一个枚举变量
enum Num ret;
ret = e;//ret的赋值范围为(a,b,c,d,e)
而不能如此定义:
ret = 3;
若必须要这样定义,则需要强制类型转化
ret=(enum Num)3;//等同于ret=d;
注意:在使用枚举常量时,要清楚其为常量,不可被赋值,也不可被改变
二.联合(共用体)
联合:
一种特殊的自定义类型,可包含一系列的不同类型,相当于结构体;不过不同的是联合中的成员共用一块空间,所以在同一时间只能保留一个属性内容。
联合关键字:union
联合的定义
union Un
{
char a;
int b;
float c;
};
Un有char,int,float三种属性;
联合大小计算
1.联合大小至少是最大成员的大小;例如:上述联合大小为8
2.当最大成员大小不是最大对齐数的整数倍时,就需要对齐至最大对齐数的整数倍处。例如:
union Un
{
char a[5];
int b;
};
其最大对齐数为:int型的4;
最大成员为char[5],大小为5;
故此根据对其原则:联合大小为8。