编译器错误 C2000 - C2099

本文档部分提到的文章解释了编译器生成的一部分错误消息。

重要

Visual Studio 编译器和生成工具可报告多种类型的错误和警告。 发现错误或警告后,生成工具可做出有关代码意向的假设并尝试继续,因此,可能会同时报告更多问题。 如果工具做出错误假设,则后续错误或警告可能不适于你的项目。 纠正项目中的问题时,请始终先纠正报告的第一个错误或警告,然后在通常情况下重新生成。 一个修补程序可能会使许多后续错误消失。

若要在 Visual Studio 中获取有关特定诊断消息的帮助内容,请在“输出”窗口中选择该消息,然后按 F1 键。 Visual Studio 会打开该错误的文档页(如果存在)。 还可以使用页面顶部的搜索工具查找有关特定错误或警告的文章。 或者,按工具浏览错误和警告列表,并在此页面上的内容列表中键入内容。

注意

并非所有 Visual Studio 错误或警告均有记录。 在许多情况下,诊断消息将提供所有可用信息。 如果在使用 F1 时登陆此页,并且认为错误或警告消息需要额外的解释,请告诉我们。 可以使用此页面上的反馈按钮在 GitHub 上提出文档问题。 如果认为错误或警告是错误的,或者发现了工具集的其他问题,请在开发者社区网站上报告产品问题。 还可以在 IDE 中发送反馈并输入 bug。 在 Visual Studio 中,转到菜单栏并选择“帮助”>“发送反馈”>“报告问题”,或者使用“帮助”>“发送反馈”>“发送建议”提交建议

可以在 Microsoft Learn Q&A 论坛上找到有关错误和警告的其他帮助。 或者,在 Visual Studio C++ 开发者社区网站上搜索错误或警告编号。 还可以搜索 Stack Overflow 以查找解决方案。

有关指向其他帮助和社区资源的链接,请参阅 Visual C++ 帮助和社区

错误消息

错误 Message
编译器错误 C2000 未知错误
请在 Visual C++ 帮助菜单上,选择技术支持命令,或打开技术支持帮助文件了解详细信息
编译器错误 C2001 常量中有换行符
编译器错误 C2002 无效的宽字符常量
编译器错误 C2003 应输入“defined id”
编译器错误 C2004 应输入“defined(id)”
编译器错误 C2005 #line 应输入行号,却找到“token”
编译器错误 C2006 “directive”: 应为文件名,却找到 “token”
编译器错误 C2007 #define 语法
编译器错误 C2008 “character”: 宏定义中的意外
编译器错误 C2009 宏形式“identifier”重复使用
编译器错误 C2010 “character”: 在宏形参列表中出现意外
编译器错误 C2011 “identifier”:“type”类型重定义
编译器错误 C2012 在“<”之后缺少名称
编译器错误 C2013 缺少“>”
编译器错误 C2014 预处理器命令必须作为第一个非空白空间启动
编译器错误 C2015 常量中的字符过多
编译器错误 C2016 C 要求一个结构或联合至少有一个成员
编译器错误 C2017 非法的转义序列
编译器错误 C2018 未知字符“0xvalue”
编译器错误 C2019 应为预处理器指令,却找到“character”
编译器错误 C2020 “member”:“class”成员重定义
编译器错误 C2021 应输入指数值而非“character”
编译器错误 C2022 “number”: 对字符来说太大
编译器错误 C2023 “identifier”:对齐方式 (value-1) 不同于之前的声明 (value-2)
编译器错误 C2024 “alignas”属性仅适用于变量、数据成员和标记类型
编译器错误 C2025 二进制模块接口文件无效或已损坏:“filename”
编译器错误 C2026 字符串太大,已截断尾随字符
编译器错误 C2027 使用未定义类型“type”
编译器错误 C2028 结构/联合成员必须在结构/联合中
编译器错误 C2029 (已过时)“token”左侧指定了未定义的类/结构/接口“identifier”
编译器错误 C2030 具有“protected private”可访问性的析构函数不能是声明为“sealed”的类的成员
编译器错误 C2031 不允许将具有“accessibility”可访问性的虚拟析构函数用于此类型
编译器错误 C2032 “identifier”: 函数不能是结构/联合“type”的成员
编译器错误 C2033 “identifier”: 位域不能有间接寻址
编译器错误 C2034 “identifier”: 位域类型对位数太小
编译器错误 C2035 不允许将具有“accessibility”可访问性的非虚拟析构函数用于此类型
编译器错误 C2036 “identifier”: 未知大小
编译器错误 C2037 “operator”左侧指定了未定义的结构/联合“type”
编译器错误 C2038 std 命名空间不能内联
编译器错误 C2039 “identifier1”: 不是“identifier2”的成员
编译器错误 C2040 “operator”:“identifier1”与“identifier2”的间接级别不同
编译器错误 C2041 对于基“number”而言数字“character”是非法的
编译器错误 C2042 signed/unsigned 关键字互相排斥
编译器错误 C2043 非法 break
编译器错误 C2044 非法 continue
编译器错误 C2045 “identifier”: 标签已重定义
编译器错误 C2046 非法的 case
编译器错误 C2047 非法的 default
编译器错误 C2048 default 多于一个
编译器错误 C2049 “namespace-name”:不能将非内联命名空间重新打开为内联
编译器错误 C2050 switch 表达式不是整型
编译器错误 C2051 case 表达式不是常量
编译器错误 C2052 “type”: 非法的 case 表达式类型
编译器错误 C2053 “identifier”: 宽字符串不匹配
编译器错误 C2054 “identifier”后应为“(”
编译器错误 C2055 应输入形参表,而不是类型表
编译器错误 C2056 非法表达式
编译器错误 C2057 应输入常量表达式
编译器错误 C2058 常量表达式不是整型
编译器错误 C2059 语法错误:“token”
编译器错误 C2060 语法错误: 遇到文件结束
编译器错误 C2061 语法错误: 标识符“identifier”
编译器错误 C2062 意外的类型“type”
编译器错误 C2063 “identifier”: 不是函数
编译器错误 C2064 项不会计算为接受 number 个自变量的函数
编译器错误 C2065 “identifier”: 未声明的标识符
编译器错误 C2066 强制转换到函数类型是非法的
编译器错误 C2067 转换到数组类型是非法的
编译器错误 C2068 非法使用重载函数。 缺少参数列表?
编译器错误 C2069 “void”项到非“void”项的转换
编译器错误 C2070 “type”: 非法的 sizeof 操作数
编译器错误 C2071 'identifier': 非法存储类
编译器错误 C2072 “identifier”: 函数的初始化
编译器错误 C2073 (已过时)“identifier”:部分初始化数组的元素必须有默认构造函数
编译器错误 C2074 “identifier”:“type”初始化需要带括号的初始化表达式列表
编译器错误 C2075 “identifier”: 数组初始化需要带括号的初始化表达式列表
编译器错误 C2076 无法在类型包含“type”的新表达式中使用带括号的初始化表达式列表
编译器错误 C2077 非标量字段初始化表达式“identifier”
编译器错误 C2078 初始值设定项太多
编译器错误 C2079 “identifier”使用了未定义的结构/类/联合“type”
编译器错误 C2080 “identifier”:“type”的类型只能从单个初始化表达式推导出
编译器错误 C2081 “identifier”: 形参列表中的名称非法
编译器错误 C2082 形参“identifier”的重定义
编译器错误 C2083 结构/联合比较非法
编译器错误 C2084 函数“identifier”已有主体
编译器错误 C2085 “identifier”: 不在形参列表中
编译器错误 C2086 “identifier”: 重定义
编译器错误 C2087 “identifier”: 缺少下标
编译器错误 C2088 “operator”: 结构/类/联合非法
编译器错误 C2089 “identifier”:“type”太大
编译器错误 C2090 函数返回数组
编译器错误 C2091 函数返回函数
编译器错误 C2092 “identifier”数组元素类型不能为函数
编译器错误 C2093 “identifier1”: 不能使用自动变量“identifier2”的地址来初始化
编译器错误 C2094 标签“identifier”未定义
编译器错误 C2095 “function”: 实际参数具有“void”类型: 参数“number”
编译器错误 C2096 “identifier”: 不能使用带圆括号的初始化表达式来初始化数据成员
编译器错误 C2097 非法的初始化
编译器错误 C2098 数据成员“identifier”后面包含意外标记
编译器错误 C2099 初始值设定项不是常量

另请参阅

C/C++ 编译器和生成工具错误与警告
编译器错误 C2000 - C3999、C7000 - C7999