我对以下if_even
函数有点困惑。返回类型标志如何?这看起来很奇怪 - 不是一个枚举只是一个多个整数的列表,如#define
的使用吗?这个C代码如何返回一个枚举?
enum flag_o_e {EVEN, ODD};
enum flag_o_e test1;
typedef enum flag_o_e FLAGS;
FLAGS if_even(int n);
main()
{
int x;
FLAGS test2;
printf("input an integer: "); scanf("%d", &x);
test2 = if_even(x);
if (test2 == EVEN)
printf("test succeeded (%d is even)\n", x);
else
printf("test failed (%d is odd)\n", x);system("pause");
}
FLAGS if_even(int n)
{
if (n%2)
return ODD;
else
return EVEN;
}
我欣赏任何提示或建议。
虽然正如其他答案所指出的那样,枚举是一个不同的类型,而不仅仅是一堆#define FOO n的别名,所以也许我的答案更令人困惑; D – aidanok 2012-03-05 00:29:22