编译器错误 C2001 到 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++ 帮助和社区。
错误消息
错误 | 消息 |
---|---|
编译器错误 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 | 初始值设定项不是常量 |