我對以下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