枚举和共用体
枚举类型
枚举的作用是为了更方便和更好看的看到数据
enum 标识名
{枚举项}
例如:
enum weekday
{mon,tues,wed,thur,fri,sat,sun};//mon如果不赋值,自动对应着0,依次往后增加
enum weekday day;
day=mon;//等价于int day;
//day=0;
例如制作一个模拟星期工作计划表
#include <stdio.h>
int main()
{
int a;
...
switch(a)
{
case 1:
case 2:
...
case n:
}
}
1,2,3…n无法看出对应着是什么,对于理解来说比较困难,所以可以通过两种方法,更直观的看出是什么
1.宏定义
#include <stdio.h>
#define monday 1;
#define tuesday 2;
....
#define sunday 7;
int main()
{
int a;
...
switch(a)
{
case monday:
case tuesday:
...
case sunday:
}
}
但是定义常量过于麻烦,且繁琐,更好的方法就是利用枚举
#include <stdio.h>
enum weekday
{mon=1,tues,wed,thur,fri,sat,sun};
int main()
{
int a;
...
switch(a)
{
case mon:
case tues:
...
case sun:
}
}
是不是更加的直观和简单呢,而且mon可以赋值为10,此时后面的tues等继续依次加1,可以实现值的改变,但都是连续的(其实没什么用,单纯好看方便)
enum weekday
{mon=1,tues,wed,thur=10,fri,sat,sun};
如果thur=10,则tues,wed,继续向上次mon=1之后依次加1,然后从thur=10后,再依次加1,则fri为11
代码很复杂很大的时候才使用枚举,使编程更加方便和简单
共用体
union peopele{
成员
…
};
形式上和结构体一模一样
但是有区别,和结构体的区别是,结构体是每个成员分别拥有自己的存储空间,而共用体是每个成员共用一个存储空间,经常通过结构体中嵌套共同体来执行