c - 此 C 代码如何返回枚举?

标签 c enums

我对下面的 if_even 函数有点困惑。返回类型FLAGS如何?这看起来很奇怪 - 枚举不是像 #define 那样只是多个整数的列表吗?

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;

   }

我很感激任何提示或建议。

最佳答案

实际上,枚举是一种新类型。它不仅仅是 int 的一些别名。 (不过,它可以与 int 相互转换。)

关于c - 此 C 代码如何返回枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9560086/

相关文章:

c++ - 为什么 const char INITIAL ='G' 不是赋值语句?

c - 刚开始使用 p_thread 和信号量,您将如何使用信号量来等待子线程完成? (没有 p_thread 连接)

c# - WPF 枚举数据绑定(bind)

java - 枚举或整数表示支付频率

Java Access Enum的具体方法?

c - 在另一个结构中声明/定义的结构范围

c - 我是否必须在函数内分配返回的字符串?

c - 使用 _sprintf_l 格式化 double 和数千个数

java - Java 中枚举值的“子集”

ios - Swift:从另一个 viewController 类访问枚举