Visual studio 始终禁用Visual Studio项目中的警告

Visual studio 始终禁用Visual Studio项目中的警告,visual-studio,warnings,compiler-warnings,suppress-warnings,Visual Studio,Warnings,Compiler Warnings,Suppress Warnings,我已经和VisualStudio斗争了一段时间了。我喜欢使用\WX选项将所有警告视为错误,因此我有一个通用的.h,它看起来像这样,用于禁用误报或我并不真正关心的警告: #pragma once #pragma warning(disable : 26812) // The enum type * is unscoped. Prefer 'enum class' over 'enum'. #ifndef _DEBUG #pragma warning(disable : 4189) // *:

我已经和VisualStudio斗争了一段时间了。我喜欢使用\WX选项将所有警告视为错误,因此我有一个通用的.h,它看起来像这样,用于禁用误报或我并不真正关心的警告:

#pragma once

#pragma warning(disable : 26812) // The enum type * is unscoped. Prefer 'enum class' over 'enum'.

#ifndef _DEBUG
#pragma warning(disable : 4189) // *: local variable is initialized but not referenced
#pragma warning(disable : 4464) // Relative include path contains '..'
#pragma warning(disable : 4514) // *: unreferenced inline function has been removed
#pragma warning(disable : 4710) // * function not inlined
#pragma warning(disable : 4711) // Function * selected for automatic line expansion
#endif
我将此文件添加到每个
.h
文件的顶部。作为额外的预防措施,当我添加任何无意编辑的外部文件(如任何库)时,我会将include-between
#pragma warning(push,0)
#pragma warning(pop)
包装起来,以确保这些文件中的任何警告都会被忽略,因为我无论如何都无法对它们执行任何操作

我遇到的问题是,我包含的库文件(
volk.h
,在本例中)包含另一个文件(
volk.c
),并且该文件正在触发一个警告
26812
,我已通过两种方式禁用了该警告:

  • 明确地说,在
    common.h
    中,它包含在
    volk.h
    之前,无处不在
  • 隐式地,通过将任何
    volk.h
    包含在“警告禁用器”之间
那么,到底发生了什么?为什么这个警告仍然存在?有没有什么好方法可以在整个项目范围内禁用警告