枚举顾名思义就是列举
比可能的值一个一个列举
枚举的定义
DAY是枚举的标签
stu是结构体的标签
结构体里面的是有类型的变量,枚举里面的是枚举的常量
我们给枚举里面先把星期的未来可能都列出来,而未来我要给枚举变量赋值的时候就可以直接引用他里面的常量
默认从0开始
0
1
2
3
等于1的话就1开始
1,2,3,4,5,6,7,8,9
枚举就是把容易列举出来的一一列举
是类型是图纸是模版是不会占任何空间的
只有你创建了变量才会申请空间的
那我们也可以用#define定义啊,为什么一定要枚举呢
枚举有类型,枚举本身是一种类型,而宏定义是没有类型的
枚举有类型检查,但在C语言体现的不深
enum day=5就是枚举类型转为int是不行的(在C语言编译器其实可以)
enum day=friday就是可以的(但就在C++编译器中体现的不深)
枚举常量是不能修改的,我们在这里只是给他赋值了个初始值
内存不会为他开辟那个空间,就是存了一个代码,就是一串二进制数
警号#define 是怎么工作的,是要完成替换的
当你写好test.c 要经过编译经过链接,然后生成exe的文件,编译之前会进行预处理,预处理时
预处理时,会把M变成100
当我们调试的时候已经生成
枚举是不用像宏定义那样替换的