#include
typedef enum {North, East, South, West} directionT;
directionT OppositeDirection(directionT dir)
{
switch(dir) {
case North: return (South);
case East: return (West);
case South: return (North);
case West: return (East);
}
}
int main()
{
printf("%s\n", OppositeDirection(North));
return 0;
}
运行后总是停止工作,然而我把printf("%s\n", OppositeDirection(North));改成
printf("%d\n", OppositeDirection(North));后却能显示正确的整型数值,但我想输出字符串啊,是哪里出问题了呢?
做不到。因为枚举对应的字符串根本在编译后的程序中就没有。
只能再写switch case输出
http://blog.chinaunix.net/uid-20412333-id-1950066.html
C 语言确实没有你想要的这个功能,可能 C# 或者 Java 有这样的功能,那是因为 C# 或者 Java 中的枚举其实是一个类。
在 C 语言中,只能自己编码实现:因为 C 语言中枚举只是一个简单的数字,所以可以按枚举的数值输出字符串。
你可以对应的定义一个{“string”}的字符数组,enum 返回下标,给字符数组,完后输出就比较类似了,楼上都说了,c里面没这个功能