gpt4 book ai didi

c++ - -Wunused-variable 编译器说错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:18:26 35 4
gpt4 key购买 nike

最近我开始用C++编程了(我是Java出身的,有点零钱哈哈)。在 Windows 下一切正常。问题是我切换到 Linux,这就是我遇到编译器问题的地方。通常当你声明一个变量但没有被使用时,编译器会显示一个“警告”说这个变量没有被使用,但是我(在 linuxmint 15 下)将我作为“错误”抛出并且没有编译:C。我做不知道是否有人发生过这种情况,但我在制作大型程序(不止一个类)时生病了。

举个例子: enter image description here

最佳答案

未使用的变量警告是调用 GCC 的结果

g++ -Wunused-variable ...

如果是这种情况,请不要指定该参数。或者是因为 -Wall:

g++ -Wall ...

在这种情况下,指定 -Wno-unused-variable

它被作为错误抛出,因为您也有“-Werror”参数。

出现此警告的原因有几个:在 C++ 的范围之间“隐藏”变量是可能的,因此未使用变量的一个常见原因是当您有两个同名变量时。

int i = 5;
for (int i = 0; i < 10; ++i) { // << this is SECOND variable called i that hides the previous
}
if (day == "Monday") {
int i; // << you can't see the second i here, this is a third that also hides the first.
...
}
// std::cout << "i = " << i << std::endl; // we can see original i again here

这里有两个变量叫做“i”。如果您取消注释最后一行,它将打印 5,与名为“i”的两个附加变量无关。

如果没有 std::cout,原始的外部 i 将永远不会被使用。也许最后一个“int i”是一个错误。

另一个常见问题与在 C++ 中拥有全局变量的能力有关

int Whoops; // GLOBAL: NEVER EVER TOUCH THIS.

int func() {
int whoops; // LOCAL: ALWAYS TOUCH THIS.
Whoops = 42; // >W<hoops!
}

您会收到一条警告,指出“whoops”是一个未使用的变量,以帮助检测您是否修改了错误的变量。

关于c++ - -Wunused-variable 编译器说错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19750690/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com