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

时间:2009-05-21 20:40:47

标签: c++ variables initialization

当我做

之类的事情时
#include<iostream>
int main()
{
    int x;
    return 0;
}

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

6 个答案:

答案 0 :(得分:27)

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

答案 1 :(得分:21)

可能是因为你在浪费记忆力。

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

答案 2 :(得分:16)

可能会停止这样的事情:

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!!
}

答案 3 :(得分:2)

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

或者,也许他们期望它的构造函数在作用域时有副作用,并且它的析构函数在作用域时会产生另一个副作用,并且不希望编译器对人们最熟悉的东西如此“有用”达到其他代码的目的。