繁体   English   中英

为什么我会收到“未引用的本地变量”警告? (C ++)

[英]Why do I get an “Unreferenced Local Variable” warning? (C++)

当我做的事情

#include<iostream>
int main()
{
    int x;
    return 0;
}

我得到一个关于x是一个未引用的局部变量的警告(我假设因为我创建了一个变量,然后没有使用它),为什么这会给我一个警告呢?

因为通常人们不会故意创建未引用的变量。 因此,如果程序中存在未引用的变量,通常它表示您在某处有错误,并且编译器会向您发出警告。

可能是因为你没有浪费记忆。

此外,代码变得肮脏且难以理解,更不用说程序员通常不会定义他们不需要的变量,所以它就是“这真的是你的意思吗?” 警告。

这可能是为了阻止这样的事情:

void some_func() {
    int a, b, c, d, e;
    ...
    do_something_with(a);
    do_something_with(b);
    do_something_with(c);
    do_something_with(d);
    do_something_with(c); // after hours of reading code, e looks like c: BUG!!
}

顺便说一句,我偷偷地将未使用的变量作为一个快速的TODO机制投入,同时开发代码......火焰:

bool doSomething(...)
{
    int dontForgetToReplaceStubWithSomethingReal;
    return false;
}

或者,也许他们期望它的构造函数在作用域时具有副作用,并且它的析构函数在作用域时具有另一个副作用,并且不希望编译器对于人们在意图方面最了解时是如此“有用”其他的代码。

它也让你知道,如果你认为你使用的是变量而不是你会发现。 假设您出于某种原因创建了变量,也许您忘了在某处使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM