为什么我在 C++ 中收到“错误:预期 '}'”,但在 C 中却没有?

2023-12-14

我越来越"error: expected '}'"当我在以下 C++ 源代码中进行编译时,“^”指向的位置:

typedef enum { false, true } Boolean;
               ^

当我将其编译为 C 源代码时,我没有收到此错误。

这到底是什么原因呢?我被难住了!


false and true是 C++ 关键字,因此不能将它们用作enum身份标识。

在 C 中,它们不是关键字,因此您的代码可以工作,但如果您包含<stdbool.h>那么它将无法编译,因为该标头定义了false and true作为宏。

请注意,您可能不应该自己实现布尔类型。 C++已经有bool类型,如果您使用的是 C99 编译器,则可以包含stdbool.h。这会给你一个bool类型有false and true值,类似于 C++。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我在 C++ 中收到“错误:预期 '}'”,但在 C 中却没有? 的相关文章

随机推荐