枚举是用来做什么的
枚举在C语言中起始是一些符号常量集。直白点说,枚举定义了一些符号,这些符号的本质就是int类型的常量,每个符号和一个常量绑定,这个符号就表示一个自定义的一个识别码,编译器对枚举的认知就是符号常量所绑定的那个int类型的数字。
枚举符号常量和器对应的常量数字相对来说,数字不重要,符号才重要。符号对应的数字只要彼此不相同即可,没有别的要求。所以我们一般情况下我们都不明确指定这个符号所对应的数字,而让编译器自动分配。(编译器自动分配的原则是,从0开始依次增加,如果用户自定义了一个值,则从那个值开始往后依次增加。)
我的理解是,只要这个枚举类型的值是这几个值其中的一种就行,具体数字是几并不关心,判断的时候只用枚举类型里面的元素,并不用数字来判断。
C语言为何需要枚举?
C语言没有枚举是可以的,使用枚举起始就是对1、0这些数字进行符号化编码,这样的好处就是编程时可以不看数字而直接看符号。符号的意义是显然的,一眼就可以看出来,而数字所代表的的含义只能从文档和注释中得知。
宏定义的目的和意义是不用数字而用符号,从这里可以看出,宏定义和枚举类型有内在的联系,宏定义和枚举经常用来解决类似的问题,基本可以互