默认情况下关闭的编译器警告
该编译器包括默认情况下处于关闭的警告。如果默认关闭警告,大多数用户会不希望看见它。但是,用以下选项之一可以启用此警告。
#pragma warning(default : warning_number)
指定的警告 (warning_number) 在其默认级别中启用。该警告的文档包含该警告的默认级别。#pragma warning(warning_level : warning_number)
指定的警告 (warning_number) 在其指定级别 (warning_level) 中启用。/Wall
/Wall 启用默认情况下处于关闭状态的所有警告。
默认情况下,这些警告是关闭的。
C4061(级别 4) |
枚举器“identifier”(在枚举“enumeration”的 switch 中)没有被 case 标签显式处理 |
C4062(级别 3) |
枚举器“identifier”在枚举“enumeration”的 switch 中没有被处理 |
C4191 (级别 3) |
“operator/operation”:从“表达式的类型”到 “要求类型”的不安全转换 |
C4242(级别 4) |
“标识符”:从“type1”转换到“type2”,可能丢失数据 |
C4254(级别 4) |
“运算符”:从“type1”转换为“type2”,可能丢失数据 |
C4255(级别 4) |
“函数”:未给出函数原型: 将“()”转换为“(void)” |
C4263(级别 4) |
“函数”:成员函数不重写任何基类虚拟成员函数 |
C4264(级别 1) |
“virtual_function”:没有对基“class”中的虚拟成员函数可用的重写;函数被隐藏 |
C4265 (级别 3) |
“类”:类有虚函数,但析构函数不是虚拟的 |
C4266(级别 4) |
“函数”:没有对基“type”中的虚拟成员函数可用的重写;函数被隐藏 |
C4287(级别 3) |
“运算符”:符号/负常数不匹配 |
C4289(级别 4) |
使用了非标准扩展 :“var”: 在 for 循环中声明的循环控制变量用在了 for 循环范围外 |
C4296(级别 4) |
“运算符”: 表达式始终为 false |
C4302 (级别 2) |
“转换”:从“type1”到“type2”截断 |
C4350 (级别 1) |
行为更改: 调用了“member1”而不是“member2” |
“this”: 用于基成员初始值设定项列表 |
|
C4365 (级别 4) |
“action”:从“type_1”转换到“type_2”,有符号/无符号不匹配 |
C4412 (级别 2) |
“函数”: 函数签名包含类型 “type”;在纯代码与混合代码或本机代码之间传递 C++ 对象是不安全的 |
C4431 (级别 4) |
缺少类型说明符 - 假定为 int。注意: C 不再支持默认的 int |
C4435(级别 4) |
" class1 ":在/vd2下的对象布局会因虚拟基" class2 " |
C4437(级别 4) |
从虚拟基“到“class2 "的class1的dynamic_cast可以从上下文中失败 |
C4514 (级别 4) |
“函数”:未引用的内联函数已移除 |
C4536 (级别 4) |
“类型名称”:类型名超出了“limit”个字符的元数据限制 |
C4545 (级别 1) |
逗号前的表达式计算为缺少参数列表的函数 |
C4546 (级别 1) |
逗号前的函数调用缺少参数列表 |
C4547 (级别 1) |
“运算符”:逗号前的运算符无效;应输入带副作用的运算符 |
C4548 (级别 1) |
逗号前的表达式不起任何作用;应输入带副作用的表达式 |
C4549 (级别 1) |
“运算符”:逗号前的运算符无效;是否希望使用“operator”? |
C4555 (级别 1) |
表达式无效;应输入带副作用的表达式 |
C4557 (级别 3) |
“__assume”包含效果“effect” |
C4571 (级别 4) |
信息: 自 Visual C++ 7.1 之后,catch(…) 语义发生了变化;不再捕获结构化的异常(SEH) |
C4619 (级别 3) |
#pragma 警告:无警告号“number” |
C4623 (级别 4) |
“派生类”: 因为基类默认构造函数不可访问,所以未能生成默认构造函数 |
C4625 (级别 4) |
“派生类”:因为基类复制构造函数不可访问,所以未能生成复制构造函数 |
C4626 (级别 4) |
“派生类”:因为基类赋值运算符不可访问,所以未能生成赋值运算符 |
C4628 (级别 1) |
-Ze 不支持二合字母。字符序列“digraph”未解释为“char”的替换标记 |
C4640 (级别 3) |
“实例”: 本地静态对象的结构是非线程安全的 |
C4641(级别 3) |
XML 文档注释含有不明确的交叉引用。 |
C4668(级别 4) |
没有将“symbol”定义为预处理器宏,用“0”替换“directives” |
C4686(级别 3) |
“用户定义的类型”: 行为可能有更改,UDT 中的更改返回调用约定 |
C4692(级别 1) |
“function”: 非私有成员的签名包含程序集私有本机类型“native_type” |
C4710(级别 4) |
“函数”:函数未内联 |
C4711(级别 1) |
为内联展开选定了函数“function” |
C4738(级别 3) |
将 32 位浮点型结果存储在内存中,可能会降低性能 |
C4820(级别 4) |
“bytes”字节填充添加在构造“member_name”之后 |
C4826(级别 2) |
从“type1”到“type2”的转换带有符号扩展。这可能导致意外的运行时行为 |
C4836(级别 1) |
使用了非标准扩展 :“type”: 局部类型或未命名类型不能用作模板参数 |
C4837(级别 4) |
检测到三字符组:“??%c”已由“%c”替换 |
C4905(级别 1) |
宽字符串强制转换为“LPSTR” |
C4906(级别 1) |
字符串强制转换为“LPWSTR” |
C4917(级别 1) |
“声明符”: GUID 只能与类、接口或命名空间关联 |
C4928(级别 1) |
副本初始化非法;隐式应用了多个用户定义的转换 |
C4931(级别 4) |
我们假定类型库是为 number 位指针生成的 |
C4946(级别 1) |
reinterpret_cast 在相关类之间使用:“class1”和“class2” |
C4962 |
“函数”:原因在于优化导致了配置数据文件不一致 |