【正确答案】
【答案解析】两者只有很小的区别。在C语言中,枚举为整型,枚举常量为int型,因此它们都可以和其他整型类别混用而不会出错,而且枚举优点众多:能自动赋值;调试器在检验枚举变量时,可以显示符号值;服从数据块作用域规则。具体而言,两者的区别表现在以下几个方面:
1)枚举常量是实体中的一种,而宏定义不是实体。
2)枚举常量属于常量,但宏定义不是常量。
3)枚举常量具有类型,但宏没有类型,枚举变量具有与普通变量相同的性质,如作用域、值等,但是宏没有。
4)#define宏常量是在预编译阶段进行简单替换,枚举常量则是在编译的时候确定其值。
5)一般在编译器里,可以调试枚举常量,但是不能调试宏常量。
6)枚举可以一次定义大量相关的常量,而#defme宏一次只能定义一个。