1.提高程序的可读性和可维护性
比如,使用 Mon 和 Fri 比使用1 和 2 更直观,再者,可在表达式中以整数变量的方式使用enum变量,在case语句中很方便,在通讯录项目中,以往用1,2,3.。。表示每一个动作(增删改查),现在可以用ADD,DEL等替换数字,更直观
注意:枚举只能在内部使用,如果要输入Day中Mon的值,只能输入1,而不是Mon
2.防止命名污染(封装)
把Mon。。。Sun放到enum里封装起来
3..使用方便,一次可定义多个变量
枚举常量默认值是0,1,2.。。。
4.与 #define定义的标识符相比,枚举有类型检查,更加严谨
比如,#define Mon 1是没有类型的,enum常量是 int 类型,因此,只要能使用int类型的地方就可以使用枚举类型
特例(C语言编译器对类型的判别不够严格,没报错,但C++会报错)
在C中,enum Day d = 5;没问题(与enum Day d = Fri; 相同),但在C++中,不能这样使用
5..enum 在预处理之后不替换,便于调试
代码实现过程:
test.c----(预处理)---->编译---->链接---->.exe (+调试(预处理之后))
如果是#define Mon 1 就把程序中所有Mon替换为1
如果是enum中的Mon,预处理后还是Mon,调试时可更好地观察Mon的值