编译此代码时:
#include <stdio.h>
enum Boolean
{
TRUE,
FALSE
};
int main(int argc, char **argv)
{
printf("%d", Boolean.TRUE);
return 0;
}
我得到了:
错误:'布尔'未声明(首次在此函数中使用)
我做错了什么?
答案 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.
只要写下TRUE
或FALSE
,不要带这个前缀。