Easy C enum问题

nun*_*nos 5 c enums

我刚刚开始使用C语言,并且我被要求回答一些编码练习,其中出现以下代码:

typedef enum {
  false = 0,
  true = 1
} Bool;
Run Code Online (Sandbox Code Playgroud)

有人可以提供一个简短而明确的解释吗?

非常感谢.

Car*_*rum 10

它真的做了两件事; 你可以把它分解成这样的东西:

enum _bool {
   false = 0,
   true = 1
};
Run Code Online (Sandbox Code Playgroud)

和:

typedef enum _bool Bool;
Run Code Online (Sandbox Code Playgroud)

此代码创建一个新的枚举类型,然后使用typedef它给它一个方便的名称.它允许您使用Bool代码中其他地方调用的新"类型" ,并为其分配值falsetrue.这是一个简单的用例:

Bool logical_not(Bool in)
{
    if (in == true)
        return false;
    else
        return true;
}
Run Code Online (Sandbox Code Playgroud)