如何禁止显示编译器警告 C4373

How to suppress compiler warning C4373

本文关键字:警告 C4373 编译器 禁止显示      更新时间:2023-10-16

我特别遇到警告 4373 的问题。我希望禁用此特定警告。但是,警告#pragma不起作用。首先,我尝试在有问题的代码周围使用 disabled,然后抑制,但都没有效果。我还尝试在派生方法和基本方法周围使用 disabled,但也没有效果。如何专门禁止显示此警告?

编辑:有没有办法为某些特定功能禁用此警告,而不是全局?

您可以使用

#pragma 在本地禁止显示警告。

#pragma warning( push )
#pragma warning( disable : 4373 )
// Some code
#pragma warning( pop ) 

因此,例如,从 MSDN 的 C4373 演示程序开始,下面是一个禁止显示警告的修改版本:

#include <stdio.h>
struct Base
{
    virtual void f(int i) {
        printf("basen");
    }
};
#pragma warning( push )
#pragma warning( disable : 4373 )
struct Derived : Base
{
    void f(const int i) {  // C4373
        printf("derivedn");
    }
};
#pragma warning ( pop )
void main()
{
    Derived d;
    Base* p = &d;
    p->f(1);
}

您的项目设置应该能够为您提供帮助。转到项目配置->C/C++->高级,然后在"禁用特定警告"字段中输入 4373。

请注意,此设置仅适用于所选配置,不适用于全局配置。