未申报的枚举?

时间:2014-04-12 19:23:24

标签: c enums

编译此代码时:

#include <stdio.h>

enum Boolean
{
    TRUE,
    FALSE
};

int main(int argc, char **argv)
{
    printf("%d", Boolean.TRUE);

    return 0;
}

我得到了:

  

错误:'布尔'未声明(首次在此函数中使用)

我做错了什么?

4 个答案:

答案 0 :(得分:3)

在C中,您不使用语法EnumType.SpecificEnum访问单独的枚举常量。你只需说SpecificEnum。例如:

printf("%d", TRUE);

写作时

printf("%d", Boolean.TRUE);

C认为您正在尝试转到名为struct的{​​{1}}或union并访问Boolean字段,因此编译错误。

希望这有帮助!

答案 1 :(得分:1)

只需在没有布尔值的情况下写入TRUE。

答案 2 :(得分:1)

#include <stdio.h>

enum Boolean { FALSE, TRUE };

struct {
    const enum Boolean TRUE;
    const enum Boolean FALSE;
} Boolean = { TRUE, FALSE };

int main(){
    printf("%d\n", Boolean.TRUE);
    return 0;
}

答案 3 :(得分:0)

你写的是Boolean.只要写下TRUEFALSE,不要带这个前缀。