有几种方法可以禁用警告:
项目属性->C/C++->常规->警告级别->选择级别
这是 Warning Level
:
- 关闭所有警告 (/W0):关闭所有警告消息的显示。级别 1 (/W1):显示严重的警告消息。级别 2 (/W2):显示级别 1 的警告和一些不太严重的警告,例如有关隐藏类成员的警告。这是命令行上的默认警告级别。级别 3 (/W3):显示级别 2 的警告和一些不太严重的警告,例如始终计算为 true 或 false 的表达式的警告。级别 4 (/W4):显示所有级别 3 的警告和信息性警告。
或者您可以选择在 项目属性->C/C++->高级->禁用特定警告
中禁用特定的警告。
- 您可以使用 warning pragma。
语法:
#pragma warning(
warning-specifier : warning-number-list
[
#pragma warning( push [ , n ] )
#pragma warning( pop )
另外,您可以参考微软的如何:启用和禁用特定 C/C++ 警告的代码分析。
要启用或禁用代码分析警告:
2.1 创建一个标题文件,列出所有的代码分析警告及其初始状态,如下面的代码所示:
// WarningState.h
#pragma warning ( default : 6001 )
#pragma warning ( disable : 6011 )
// more warnings here
// end of file
2.2. 在应用程序头文件中包含WarningState.h。在本例中,MyApplication.h表示头文件。
// MyApplication.h file
#include "WarningState.h"
// ...
// end of file
2.3. 在源代码文件中包含MyApplication.h文件。在这种情况下,MyApplication.cpp代表源文件。
// MyApplication.cpp file
#include "MyApplication.h"
2.4. 若要修改警告状态,请在 .cpp 文件中使用 pragma warning-specifier,如下代码所示:
// MyApplication.cpp file
#include "MyApplication.h"
#pragma warning ( disable: 6001 )
#pragma warning ( default : 6001 )
禁用所有包含的第三方文件的代码分析警告
将以下代码添加到您的头文件中。
/external:I <path>
和/external:W<level>
来设置外部头文件的不同警告级别。文章中提到应该使用/experimental:external
,虽然我的VS2019似乎仍然能够识别我正在尝试做的事情的一部分,但我无法确定它是否仍然受支持。 - Ted Lyngmo