MSVC -Wall 中标准标头中的数千条警告是怎么回事?

2023-11-24

有些人似乎建议您使用 -Wall,但是当我在一个只有 main.cpp 和一些包含的小型测试项目上执行此操作时,我收到了 5800 个警告,其中大多数在标准标头或 Windows 标头中。

这是有意的行为吗?如何使我的编译警告不再出现?

以下只是一些阅读乐趣:

1>c:\program files\microsoft visual studio 10.0\vc\include\stdint.h(105): warning C4668: '_INTPTR' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(109): warning C4820: '_wfinddata64i32_t' : '4' bytes padding added after data member '_wfinddata64i32_t::attrib'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(114): warning C4820: '_wfinddata64i32_t' : '4' bytes padding added after data member '_wfinddata64i32_t::name'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(118): warning C4820: '_wfinddata64_t' : '4' bytes padding added after data member '_wfinddata64_t::attrib'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(488): warning C4820: '_stat32' : '2' bytes padding added after data member '_stat32::st_gid'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(504): warning C4820: 'stat' : '2' bytes padding added after data member 'stat::st_gid'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(520): warning C4820: '_stat32i64' : '2' bytes padding added after data member '_stat32i64::st_gid'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(521): warning C4820: '_stat32i64' : '4' bytes padding added after data member '_stat32i64::st_rdev'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(525): warning C4820: '_stat32i64' : '4' bytes padding added after data member '_stat32i64::st_ctime'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(534): warning C4820: '_stat64i32' : '2' bytes padding added after data member '_stat64i32::st_gid'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(548): warning C4820: '_stat64' : '2' bytes padding added after data member '_stat64::st_gid'
1>c:\program files\microsoft visual studio 10.0\vc\include\wchar.h(549): warning C4820: '_stat64' : '4' bytes padding added after data member '_stat64::st_rdev'
1>c:\program files\microsoft visual studio 10.0\vc\include\crtdbg.h(1078): warning C4986: 'operator new[]': exception specification does not match previous declaration
1>          c:\program files\microsoft visual studio 10.0\vc\include\new(79) : see declaration of 'operator new[]'
1>c:\program files\microsoft visual studio 10.0\vc\include\crtdbg.h(1095): warning C4986: 'operator delete[]': exception specification does not match previous declaration
1>          c:\program files\microsoft visual studio 10.0\vc\include\new(77) : see declaration of 'operator delete[]'
1>c:\program files\microsoft visual studio 10.0\vc\include\typeinfo(76): warning C4820: 'type_info' : '3' bytes padding added after data member 'type_info::_M_d_name'
1>c:\program files\microsoft sdks\windows\v7.0a\include\basetsd.h(114): warning C4668: '__midl' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(8154): warning C4820: '_SECURITY_QUALITY_OF_SERVICE' : '2' bytes padding added after data member '_SECURITY_QUALITY_OF_SERVICE::EffectiveOnly'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(8165): warning C4820: '_SE_IMPERSONATION_STATE' : '2' bytes padding added after data member '_SE_IMPERSONATION_STATE::EffectiveOnly'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(8334): warning C4820: '_QUOTA_LIMITS' : '4' bytes padding added after data member '_QUOTA_LIMITS::PagefileLimit'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(8357): warning C4820: '_QUOTA_LIMITS_EX' : '4' bytes padding added after data member '_QUOTA_LIMITS_EX::PagefileLimit'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(8405): warning C4820: '_JOBOBJECT_BASIC_LIMIT_INFORMATION' : '4' bytes padding added after data member '_JOBOBJECT_BASIC_LIMIT_INFORMATION::SchedulingClass'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(8984): warning C4820: '_FILE_NOTIFY_INFORMATION' : '2' bytes padding added after data member '_FILE_NOTIFY_INFORMATION::FileName'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(9012): warning C4820: '_REPARSE_GUID_DATA_BUFFER' : '3' bytes padding added after data member '_REPARSE_GUID_DATA_BUFFER::GenericReparseBuffer'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(10131): warning C4820: '<unnamed-tag>' : '3' bytes padding added after data member '<unnamed-tag>::Data'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(10241): warning C4820: '<unnamed-tag>' : '4' bytes padding added after data member '<unnamed-tag>::DecreaseTime'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(10262): warning C4820: '<unnamed-tag>' : '4' bytes padding added after data member '<unnamed-tag>::TimerInterval' 
1>c:\program files\microsoft sdks\windows\v7.0a\include\wincrypt.h(1440): warning C4668: 'NTDDI_WINLH' is not defined as a preprocessor macro, replacing with '0' for '#if/

视觉C++/Wall启用默认情况下禁用的所有警告/W4。正如您所发现的,默认情况下禁用许多警告是有充分理由的(感谢编译器告诉我您已经添加了填充;我真的很感激!)。最好只是使用/W4在 Visual C++ 上。

Intel C++ 也是这样(我不知道其他使用 EDG 前端的编译器)。如果您将其设置为/W5,它会喷出大量的信息性消息。我个人最喜欢的是,如果存储类说明符不在声明的开头,它会警告您(因此,const static int不行,但是static const int很好)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MSVC -Wall 中标准标头中的数千条警告是怎么回事? 的相关文章

随机推荐

  • Nhibernate + QueryOver:使用Where 过滤敏感信息

    我正在尝试使用 QueryOver 在 nHibernate 中构建一个简单的查询 但我希望它将所有内容转换为小写或忽略敏感内容 Domain User User Session QueryOver
  • 为日期添加 10 秒

    如何向 JavaScript 日期对象添加 10 秒 像这样的东西 var timeObject new Date var seconds timeObject getSeconds 10 timeObject timeObject sec
  • Node.js Https请求错误

    我试过了文档中的示例而且效果很好 但是当我将网址更改为https api mercadolibre com sites 请求挂起 我唯一得到的是 Error socket hang up code ECONNRESET 这是我的代码 var
  • 使用 github 时“找不到 Visual Studio Web 请求处理程序”的解决方法?

    当我在 github 上选择 在 Visual Studio 中打开 时 出现以下错误 找不到 Visual Studio Web 请求处理程序 我相信这是由于 git client 协议处理程序未正确注册造成的 这里列出了 VS2015
  • String对象真的是通过引用吗? [复制]

    这个问题在这里已经有答案了 我一直在学习 新手 NET 但我有一些疑问 从书中的例子中我了解到 字符串是对象 然后是引用类型 所以 我做了这个测试 结果与我预期的不同 我真的很好奇 这是一个例外吗 因为 字符串 是特殊类型 class Pr
  • 如何在 java 中将堆栈跟踪添加到调试打印输出中

    从调试打印输出中打印堆栈跟踪的最简单方法是什么 在测试过程中 您通常想知道导致引发调试消息的情况的调用堆栈 如果您使用的是 log4j Exception e new Exception log error error here e 会将堆
  • JQuery 与其他 JQuery 库冲突

    我使用 jquery 作为模块 我的 joomla 模板有一个集成的 jquery 菜单 所以他们互相冲突 有没有办法解决这个问题 遵循模块的脚本代码
  • 从输入流获取文件名 (Java)

    如果我有这段代码 我如何保留原始文件的文件名或将其重新分配给新文件 InputStream input assetInfo openStream File t new File OutputStream out new FileOutput
  • 将 javascript 对象序列化为 json 并返回

    我正在使用 jQuery post 方法将一些数据发送到服务器 我不想自己构建 JSON 字符串 而是想简单地使用 JavaScript 对象 当我得到返回字符串 JSON 格式 时 我想自动构造一个相应的 JavaScript 对象 这可
  • 使用 Fluent NHibernate 将 List 映射到分隔字符串

    我的模型看起来像这样 public class Product public string Name get set public string Description get set public double Price get set
  • 如何在 Macos 中检测新文件或修改过的文件

    在Windows操作系统中 MS提供了ReadDirectoryChangesW和FindFirstChangeNotification API来检测新的或修改的文件 Mac OSX是否也提供相同的功能 在 Mac OS X Leopard
  • React - 如何将参数传递给事件处理程序

    好吧 我是 React 新手 关于事件处理程序的一件事真的非常困扰我 我似乎无法得到关于如何向它们传递参数的直接答案 到目前为止 我看到的有两种方法 Bind props squareClick bind this argument Inl
  • 如何使用 CSS 制作 V 形箭头?

    好的 所以每个人都知道你可以用这个来制作一个三角形 triangle width 0 height 0 border left 50px solid transparent border right 50px solid transpare
  • 在 PDO 查询上设置 group_concat_max_len

    我有以下查询 cases conn gt prepare SELECT GROUP CONCAT text SEPARATOR as texts year FROM cases GROUP BY year ORDER BY ano DESC
  • CardLayout 获取所选卡片的名称

    如何获取卡片布局中所选面板的字符串标识符 CardLayout 不知道当前选择的面板是什么 调用 show 方法时 您应该自己将其保留在内存中
  • 最令人烦恼的解析[重复]

    这个问题在这里已经有答案了 我在这里看到了一个代码Cpp Quiz 问题 38 include
  • 在 CXF wsdl2java 中设置 Java 合规性级别

    我是 CXF 的新手 正在尝试从 WSDL 创建客户端 我过去使用过 Metro 和 Axis 我下载了 apache cxf 2 3 3 并使用 wsdl2java 生成客户端存根 我使用 Maven 并使用以下命令设置我的 pom
  • 创建沙箱 C# [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 有没有关于如何使用 C 创建沙箱的教程 我想定制一款属于我自己的 谢谢 研究使用应用程序域 这是一些代码examples
  • Foreach Razor 内部的 Foreach

    我正在尝试编写一个 foreach 循环 它将找到每个不同的类别类型 然后列出具有该类别分配的每个标题 例如 model IEnumerable
  • MSVC -Wall 中标准标头中的数千条警告是怎么回事?

    有些人似乎建议您使用 Wall 但是当我在一个只有 main cpp 和一些包含的小型测试项目上执行此操作时 我收到了 5800 个警告 其中大多数在标准标头或 Windows 标头中 这是有意的行为吗 如何使我的编译警告不再出现 以下只是