答案 0 :(得分:11)
除了上面的答案之外,值得一提的是,在有限范围内禁用警告通常是一种好习惯(如果您将这些编译指示放在头文件中,这一点尤其重要):
#pragma warning (disable : 4121) // alignment of a member was sensitive to packing
#include <third-party-header.h>
#pragma warning (default : 4121) // Restore default handling of warning
另一种方法是使用推/弹机制。如果您需要在第三方头文件中禁用一堆警告,这可能很方便:
#pragma warning(push)
#pragma warning(disable: 4018) // signed/unsigned mismatch
#pragma warning(disable: 4100) // unreferenced formal parameter
#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated
#pragma warning(disable: 4710) // 'function' : function not inlined
#pragma warning(disable: 4503) // decorated name length exceeded, name was truncated
#include <third-party-header1.h>
#include <third-party-header2.h>
#include <third-party-header3.h>
#include <third-party-header4.h>
#pragma warning(pop)
答案 1 :(得分:6)
您可以使用该MSDN页面上显示的#pragma warning
:
#pragma warning(disable: 4995)
或者,您可以在项目的属性中关闭整个项目的警告(右键单击项目 - &gt;属性 - &gt; C / C ++ - &gt;高级 - &gt;禁用特定警告)。在命令行中,您可以使用/wd4995
实现相同的效果。