我在头文件中有enum
。
typedef enum{
up = 8, down = 2, left = 4, right = 6
}direction;
我想使用枚举来识别移动的类型。 像这样:
void sayTypeOfMove(int type){
switch(type){
case direction.up:
printf("IT IS UP MOVE...");
break;
}
}
代码无法编译,问题出在哪里?
答案 0 :(得分:5)
C知道你知道你处理那个枚举时的enum元素,所以正确的代码将是
void sayTypeOfMove(direction type){
switch(type){
case up:
printf("IT IS UP MOVE...");
break;
}
}
顺便说一句,type
是一个非常糟糕的名字,因为它感觉非常像应该是一个保留的关键字。
答案 1 :(得分:2)
使用像
这样的定义typedef enum{
up = 8, down = 2, left = 4, right = 6
}direction;
direction
是类型,它不是变量。
您需要定义该类型的变量,然后使用该值。
请记住,enum根本没有成员变量访问概念。枚举器列表包含“枚举常量”。您可以直接使用它们作为值。