[英]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.