Joh*_*ohn 1 c++ arguments compiler-warnings
我使用以下方法在我的程序中使用参数,但它似乎只是给我一个警告(只是一个警告): "warning: suggest parentheses around assignment used as truth value"
代码的开头如下:
while((++argv)[0] && argv[0][0]=='-'){
while(c =* ++argv[0])
Run Code Online (Sandbox Code Playgroud)
while(c =* ++argv[0])警告仍然存在的部分.代码工作正常,但这个警告意味着与使用的内容相反?
我认为代码是c = *++argv[0]使用指针.那么为什么单一的=工作和真正建议使用的是什么?
编译器不确定您是否打算这样做
while(c == whatever)
Run Code Online (Sandbox Code Playgroud)
代替.在条件表达式中滥用赋值而不是比较是一个常见的错误.有时您确实需要分配,有时不需要,编译器会发出警告.要使编译器看到您确实需要赋值而不发出警告,请使用:
while((c =* ++argv[0]) != 0)
Run Code Online (Sandbox Code Playgroud)