2017-06-19 29 views
-2
#include <stdio.h> 

enum week { sunday = 0, monday, tuesday, wednesday, thursday, friday, saturday }; 

int main() 
{ 
    int testNum = monday; 
    enum week var = monday; 
    printf("%d\n", testNum); 
    return 0; 
} 

使某个变量成为特定枚举类型的目的是什么?例如,在上面的代码中,变量var的好处在于“enum week”类型与只有“testNum”整数类型的整数类型有什么区别?在C中类型为enum的变量的用途

+1

基本上只是更好的调试器支持。 (Enums很奇怪。)也可能作用域(你不能用宏做)。 – PSkocik

+1

更好的可读性。更好的类型检查。 –

+0

更简单的定义。 –

回答

1

枚举类型是一个有用的抽象,用于表示不必排序的小值集合,或者算术操作无意义的地方。例如,

enum cartype { coupe, hatchback, sedan, suv }; 

从逻辑上讲,cartype有四个值。这些值不是相对于彼此排列的(sedan < suv的含义是什么?),没有任何定义的自动操作(coupe + hatchback的含义是什么?)等。

基本上,只是另一种表示数据的方式,而不会让你陷入这种表示的细节之中。