当前位置 博文首页 > 月下梭罗的博客:自定义数据类型---枚举和共用体(浅记)
枚举顾名思义就是把可能的取值一一列举,比如在我们现实生活中:一周的星期一到星期日是有限的7天,可以一一列举。性别有:男,女,保密,也可以一一列举;十二个月份也可以一一列举。这时就可以使用枚举了。
枚举的使用
enum Sex{
//枚举的可能取值---常量
MALE;
FEMALE;
SECRET;
};
enum Color{
RED;
GREEN;
BLUE;
};
int main(){
enum Sex s=MalE;
enum Color c=BLUE;
return 0;
}
为什么使用枚举?
我们可以使用 #define定义常量,为什么非要使用枚举?枚举的优点:
联合也是一种特殊的自定义类型,这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。比如:
union Un{
char c;//1字节
int i;//4字节
};
//5字节
int main(){
union Un u;
printf("%d\n",sizeof(u));//结果为4字节
printf("%p\n",&(u.c));
printf("%p\n",&(u.i));
printf("%p\n",&u);
return 0;
}
//由程序的运行结果可知,他们公用一块内存空间
cs联合的成员是共用同一块内存空间,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员。)