编译器错误 C2100 - C2199
本文档部分提到的文章解释了编译器生成的一部分错误消息。
重要
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++ 帮助和社区。
错误消息
错误 | 消息 |
---|---|
编译器错误 C2100 | 非法的间接寻址 |
编译器错误 C2101 | 常量上的“&” |
编译器错误 C2102 | "&" 要求左值 |
编译器错误 C2103 | 寄存器变量上的“&” |
编译器错误 C2104 | 已忽略位域上的“&” |
编译器错误 C2105 | “operator”需要左值 |
编译器错误 C2106 | “operator”:左操作数必须为左值 |
编译器错误 C2107 | 非法索引,不允许间接寻址 |
编译器错误 C2108 | 下标不是整型 |
编译器错误 C2109 | 下标要求数组或指针类型 |
编译器错误 C2110 | “+”:不能添加两个指针 |
编译器错误 C2111 | “+”:指针加法要求整型操作数 |
编译器错误 C2112 | “-”:指针减法要求整型或指针操作数 |
编译器错误 C2113 | “-”:指针只能从另一个指针上进行减法运算 |
编译器错误 C2114 | “operator”:左侧指针;需要右侧的整数值 |
编译器错误 C2115 | “operator”:不兼容的类型 |
编译器错误 C2116 | 函数参数列表有差异 |
编译器错误 C2117 | “identifier”:数组界限溢出 |
编译器错误 C2118 | 负下标 |
编译器错误 C2119 | “identifier”:无法从空的初始值设定项推导“type”的类型 |
编译器错误 C2120 | 对于所有类型“void”非法 |
编译器错误 C2121 | “#”:无效字符:可能是宏扩展的结果 |
编译器错误 C2122 | “identifier”:名称列表中的原型参数非法 |
编译器错误 C2123 | “identifier”:别名模板无法显式或部分专门化 |
编译器错误 C2124 | 被零除或对零求模 |
编译器错误 C2125 | “constexpr”与“token”不兼容 |
编译器错误 C2126 | 不能使用“constexpr”说明符声明“identifier” |
编译器错误 C2127 | “identifier”:非法初始化了含非常量表达式的“constexpr”实体 |
编译器错误 C2128 | “function”:alloc_text/same_seg 只可用于带 C 链接的函数 |
编译器错误 C2129 | 静态函数“identifier”已声明但未定义 |
编译器错误 C2130 | #line 应为包含文件名的字符串,却找到“token” |
编译器错误 C2131 | 表达式的计算结果不是常数 |
编译器错误 C2132 | 语法错误:意外的标识符 |
编译器错误 C2133 | “identifier”: 未知大小 |
编译器错误 C2134 | “function”:调用不会生成常数表达式 |
编译器错误 C2135 | “operator”:非法的位域操作 |
编译器错误 C2136 | 不允许创作 API 协定 |
编译器错误 C2137 | 空字符常量 |
编译器错误 C2138 | 定义没有任何成员的枚举是非法的 |
编译器错误 C2139 | “class”:未定义的类不允许作为编译器内部类型特征“trait”的参数 |
编译器错误 C2140 | “type”:依赖于泛型类型参数的类型不允许作为编译器内部类型特征“trait”的参数 |
编译器错误 C2141 | 数组大小溢出 |
编译器错误 C2142 | 函数声明有差异,只在一个声明中指定了变量参数 |
编译器错误 C2143 | 语法错误:“token2”的前面缺少“token1” |
编译器错误 C2144 | 语法错误:“token2”的前面应有“type” |
编译器错误 C2145 | 语法错误:标识符的前面缺少“token” |
编译器错误 C2146 | 语法错误:标识符“identifier”的前面缺少“token” |
编译器错误 C2147 | 语法错误:“token”是一个新关键字 |
编译器错误 C2148 | 数组的总大小不得超过 0xvalue 字节 |
编译器错误 C2149 | “identifier”:已命名位域不能具有零宽度 |
编译器错误 C2150 | “identifier”:位域必须有“int”、“signed int”或“unsigned int”类型 |
编译器错误 C2151 | 语言特性多于一个 |
编译器错误 C2152 | “identifier”:指向有不同特性的函数的指针 |
编译器错误 C2153 | 整数文本必须至少具有一位数 |
编译器错误 C2154 | “type”:只有枚举类型才允许作为编译器内部类型特征“trait”的参数 |
编译器错误 C2155 | “?”:左边的操作数无效,应使用算术类型或指针类型 |
编译器错误 C2156 | 杂注必须在函数的外部 |
编译器错误 C2157 | “identifier”:必须先声明,然后才可用于 pragma 列表 |
编译器错误 C2158 | “type”:目前只有本机非模板类型才支持 #pragma make_public 指令 |
编译器错误 C2159 | 指定了一个以上的存储类 |
编译器错误 C2160 | “##”不能在宏定义的开始处出现 |
编译器错误 C2161 | “##”不能在宏定义的结尾处出现 |
编译器错误 C2162 | 应输入宏形参 |
编译器错误 C2163 | “function”:不可用作内部函数 |
编译器错误 C2164 | “function”:未声明内部函数 |
编译器错误 C2165 | “modifier”:不能修改指向数据的指针 |
编译器错误 C2166 | 左值指定 const 对象 |
编译器错误 C2167 | “function”:内部函数的实参过多 |
编译器错误 C2168 | “function”:内部函数的实参太少 |
编译器错误 C2169 | “function”:内部函数,不能定义 |
编译器错误 C2170 | “function”:没有声明为函数,不能是内部函数 |
编译器错误 C2171 | “operator”:“type”类型的操作数非法 |
编译器错误 C2172 | “function”:实参不是指针:参数数目 |
编译器错误 C2173 | “function”:实参不是指针:参数 number1,参数列表 number2 |
编译器错误 C2174 | “function”:实参具有“void”类型:参数 number,参数列表 number |
编译器错误 C2175 | “locale”:无效的区域设置 |
编译器错误 C2176 | 不能在与构造函数关联的函数 try 块的处理程序中使用 return 语句 |
编译器错误 C2177 | 常量太大 |
编译器错误 C2178 | 不能使用“specifier”说明符声明“identifier” |
编译器错误 C2179 | “type”:特性参数不能使用类型参数 |
编译器错误 C2180 | 控制表达式具有类型“type” |
编译器错误 C2181 | 没有匹配 if 的非法 else |
编译器错误 C2182 | “identifier”:非法使用“void”类型 |
编译器错误 C2183 | 语法错误:翻译单元为空 |
编译器错误 C2184 | “type”:__except 表达式的类型非法 |
编译器错误 C2185 | “identifier”:基于非法的分配 |
编译器错误 C2186 | “operator”:“void”类型的操作数非法 |
编译器错误 C2187 | 语法错误:“token”出现在此处是意外 |
编译器错误 C2188 | “number”:对宽字符来说太大 |
编译器错误 C2189 | “alignas”属性不可适用于位域、函数参数、异常声明或用“register”存储类声明的变量 |
编译器错误 C2190 | 第一个参数列表比第二个长 |
编译器错误 C2191 | 第二个参数列表比第一个长 |
编译器错误 C2192 | 参数“number”声明不同 |
编译器错误 C2193 | “identifier”:已在段中 |
编译器错误 C2194 | “identifier”:是一个文本段 |
编译器错误 C2195 | “identifier”:是一个数据段 |
编译器错误 C2196 | case 值“value”已使用 |
编译器错误 C2197 | “function”:用于调用的参数过多 |
编译器错误 C2198 | “function”:用于调用的参数太少 |
编译器错误 C2199 | 语法错误:在全局范围内找到“identifier”(是否预期声明?) |