Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 编译警告不存在(GCC和g+;+;)_C++_C_Gcc_G++ - Fatal编程技术网

C++ 编译警告不存在(GCC和g+;+;)

C++ 编译警告不存在(GCC和g+;+;),c++,c,gcc,g++,C++,C,Gcc,G++,是一个表达式语句,它没有任何副作用 C不要求对该语句发出任何警告。编译器可以随意添加或不添加信息性警告,以表明该语句无效。编译器可以优化语句。就语言而言,没有错误-语句不需要有副作用 然而,由于一个不做任何事情的语句几乎肯定是一个错误,大多数编译器都会对此发出警告。只有通过命令行参数启用该警告,您的警告才会生效 您可以仅使用-Wunused value启用该警告,但我建议您使用-Wall-Wextra启用一组适当的警告(包括此警告) 正如您所发现的,这还将发出警告,指出函数参数未使用。由于这是m

是一个表达式语句,它没有任何副作用


C不要求对该语句发出任何警告。编译器可以随意添加或不添加信息性警告,以表明该语句无效。编译器可以优化语句。

就语言而言,没有错误-语句不需要有副作用

然而,由于一个不做任何事情的语句几乎肯定是一个错误,大多数编译器都会对此发出警告。只有通过命令行参数启用该警告,您的警告才会生效

您可以仅使用
-Wunused value
启用该警告,但我建议您使用
-Wall-Wextra
启用一组适当的警告(包括此警告)

正如您所发现的,这还将发出警告,指出函数参数未使用。由于这是
main
,您可以通过将签名更改为没有任何参数来轻松修复它:

bret - 2;
更一般地说,为了避免警告,如果你需要忽略参数,C++允许你不给它们命名:

int main()
这两种语言都允许您显式使用但忽略值

int main(int, char**)

应该有一个警告,只要你启用了一个合理的警告;默认情况下,GCC相当安静。试试
-Wall-Wextra
。或者
-wUsed value
来启用特定的警告。是的…我得到了下面的警告,谢谢。。[debd@test]$gcc-Wall-Wextra test2.c test2.c:在函数“main”中:test2.c:7:警告:语句无效test2.c:4:警告:未使用的参数“argc”test2.c:4:警告:未使用的参数“argv”[debd@test]$事实上,您没有使用函数参数,因此会得到一个警告。您可以通过将签名更改为
int main()
来修复该警告。(更一般地,您可以通过不命名参数来在C++中修复未使用的参数,或者在C中使用<代码>(空隙)ARCC;< /COD>显式忽略该值。
int main()
int main(int, char**)
(void)argc;
(void)argv;