最近我开始用C + +编程(我来自Java,这花了我一点点改变哈哈)。 在windows下一切正确。 问题是,我切换到linux,这是我有问题的编译器。 通常当你声明一个variables而没有使用时,编译器会显示一个“警告”,表示这个variables没有被使用,但是我(在linuxmint 15下)把我当作“错误”抛出,并且没有编译:C不知道有没有人发生过这样的事情,但是在制作大型节目时(不止一节课)我生病了。
一个小例子:
未使用的变量警告是调用GCC的结果
g++ -Wunused-variable ...
如果是这种情况,请不要指定参数。 或者是因为-Wall:
g++ -Wall ...
在这种情况下,指定-Wno-unused-variable
它被当作一个错误被抛出,因为你也有“错误”的论点。
这个警告有几个原因:可以在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
这里有两个变量叫“我”。 如果您取消注释最后一行,则会打印5,与另外两个名为“i”的变量无关。
没有std :: cout,虽然,原来,外,我从来没有使用过。 也许最后的“int i”是一个错误。
另一个常见的问题涉及到在C ++中具有全局变量的能力
int Whoops; // GLOBAL: NEVER EVER touch THIS. int func() { int whoops; // LOCAL: ALWAYS touch THIS. Whoops = 42; // >W<hoops! }
你会收到一个警告,“哎呀”是一个未使用的变量,以帮助检测你修改了错误的变量。
总结以上是内存溢出为你收集整理的–Wunusedvariables编译器说错误全部内容,希望文章能够帮你解决–Wunusedvariables编译器说错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)