为什么我会得到;错误:应为';}'&引用;在C++;但不是用C? 我得到:错误:预期'}' /,当我在下面的C++源编译时,^ ^指向: typedef enum { false, true } Boolean; ^
当我把它编译成C源代码时,我没有得到这个错误为什么我会得到;错误:应为';}'&引用;在C++;但不是用C? 我得到:错误:预期'}' /,当我在下面的C++源编译时,^ ^指向: typedef enum { false, true } Boolean; ^,c++,c,enums,boolean,C++,C,Enums,Boolean,当我把它编译成C源代码时,我没有得到这个错误 这是什么原因?我被难住了伪和Trime是C++关键字,因此不能用它们作为 EnUM < /Cuth>标识符。 在C语言中,它们不是关键字,因此代码可以工作,但如果包含,那么它将无法编译,因为该标题将false和true定义为宏 请注意,您可能不应该自己实现布尔类型。C++已经有了 BOOL类型,如果使用C99编译器,则可以包含 STDBOOL。这将给您一个 Boo.类型,它有“ false 和TrimeValue>>,类似于C++。 /P>< P>
这是什么原因?我被难住了<代码>伪和
,那么它将无法编译,因为该标题将false
和true
定义为宏
请注意,您可能不应该自己实现布尔类型。C++已经有了<代码> BOOL类型,如果使用C99编译器,则可以包含<代码> STDBOOL。这将给您一个<代码> Boo.<代码>类型,它有“<代码> false
false
...
true
在C语言中,它们不是关键字,你的代码应该有效,但最好是包含已经定义了
true
和false
的
,这样你就不需要自己定义它们了。要解决这个问题,你需要:
#ifdef __cplusplus
typedef bool Boolean;
#else
typedef enum { false, true } Boolean;
#endif
这样,您不想在<代码> EnUM<代码>中使用C++关键字(<代码>真< /代码>和<代码> false <代码> >。P>不能将名称“代码> false < /COD>”和<代码>真< /代码>提交给C++中的任何东西。请注意,<代码>布尔O/COD>已经是C++中的一个类型,#包括
将扩展为,它肯定无法编译<代码>类型定义枚举{false,true}布尔值
typedef enum{0,1}布尔值现在,即使在C语言中也有布尔数据类型。仅包括STDBOOL。H就足够了,然后您可以使用与C++相同的Type。最好是从开始使用<代码>布尔O/COD>。要解决这个问题,你应该写C或C++。编写有效C和有效C++的代码实际上是非常罕见的。