首页 > 解决方案 > 有没有办法让 Visual Studio 编译器为此 C++ 代码发出警告?

问题描述

我真的很想追踪这类错误,如果 DoNothing 确实修改了值,我真的不在乎是否收到警告。使用 VS2019,如果这有什么不同的话。

void DoNothing(int&){}

int GetUninitializedInt()
{
    // uninitialized 
    int x;

    DoNothing(x);

    // still uninitialized, compiled with /Wall gives no warning
    return x;
}

标签: c++visual-studio

解决方案


实际上,C++ 编译器无法捕获此类错误。你只能人为地避免这样的错误。因此,我建议您通过设置来提高警告级别以尽可能避免此错误Properties->C/C++->General->Warning Level

对于这个问题,您可以修改代码:

void DoNothing(const int&){}

//Or

void DoNothing(int){}

推荐阅读