错误 C2059:语法错误“常量”[重复]

Posted

技术标签:

【中文标题】错误 C2059:语法错误“常量”[重复]【英文标题】:Error C2059: syntax error 'constant' [duplicate] 【发布时间】:2013-09-04 12:46:30 【问题描述】:

我在头文件中有以下代码:

enum false,true;

我在 main.c 中有我的主要功能。如果我将扩展名更改为 main.cpp 我收到以下错误:

Error C2059: syntax error 'constant' 

我正在使用 Visual c++,有什么想法吗?

【问题讨论】:

您找到了 C++ 无法 100% 向后兼容 C 的原因之一。 【参考方案1】:

truefalse 是 C++ 中表示常量值的关键字。你不能用它们来命名诸如枚举值之类的东西。

举个例子,下面会编译

enum  false_, true_ ;

int main() 

【讨论】:

对于已经在别处定义的其他常量(例如枚举)也是如此(当我定义了一个名为 NO_ERROR 的枚举值时遇到了问题,该枚举值已经在 winerror.h 中定义)。 【参考方案2】:

falsetrue 是 C++ 中的保留字。您不能将其重新定义为变量。

【讨论】:

以上是关于错误 C2059:语法错误“常量”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

错误 C2059:尝试在已知大小的头文件中创建 Qt 容器时出现“常量”

解决error C2059: 语法错误:“::”问题

如何找到 C++ 编译器认为定义为常量的内容?

vs2012 MinGW编译ffmpeg 出现libavdevice/avdevice.c(38) : error C2059: 语法错误:“.”

C语言错误 error C2059: 语法错误:“)”以及 错误error C2065: “sockaddr”: 未声明的标识符

qt中出现error: C2059: 语法错误:“namespace”未定义等大量错误的问题