当我在以下 C++ 源代码中编译时,我得到了 "error: expected '}'"
'^' 指向的地方:
typedef enum { false, true } Boolean;
^
当我将其编译为 C 源代码时,我没有收到此错误。
这是什么原因?我很难过!
最佳答案
false
和 true
是 C++ 关键字,因此您不能将它们用作 enum
标识符。
在 C 中,它们不是关键字,因此您的代码可以工作,但如果您包含 <stdbool.h>
那么它将无法编译,因为该 header 定义了 false
和 true
作为宏。
请注意,您可能不应该自己实现 boolean 类型。 C++ 已经有了 bool
类型,如果您使用的是 C99 编译器,则可以包括 stdbool.h
.这会给你一个 bool
具有 false
的类型和 true
值,类似于 C++。
关于c++ - 为什么我在 C++ 中得到 "error: expected ' }'"但在 C 中却没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18578025/