在Linux gcc 4.4.7中,我需要您的帮助以获得以下警告
for (int iLoop1= 0; iLoop1< iLoopN; ++iLoop1, ++iLoop2, !iIsOk)
Run Code Online (Sandbox Code Playgroud)
我在最后一个逗号之后的最后一个参数中发出以下警告
error: right-hand operand of comma has no effect
Run Code Online (Sandbox Code Playgroud)
我已经阅读了逗号运算符的wiki页面,但我不明白这个问题 https://en.wikipedia.org/wiki/Comma_operator
编辑:有效!iIsOk没有做任何我测试以下代码
// Example program
#include <iostream>
#include <string>
#include <iostream>
int main()
{
int iIsOk = 0;
for (int iLoop1 = 0; iLoop1 < 2; iLoop1++, !iIsOk)
{
std::cout << "IsOk=" << iIsOk << std::endl;
}
for (int iLoop1 = 0; iLoop1 < 2; iLoop1++, iIsOk = !iIsOk)
{
std::cout << "IsOk2=" << iIsOk << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
IsOk=0
IsOk=0
IsOk2=0
IsOk2=1
Run Code Online (Sandbox Code Playgroud)
!iIsOk虽然评估过,但没有做任何事情; 即删除它将对程序完全没有影响.
您有用的编译器会警告您这一点.
你是不是要写作循环中停止条件的!iIsOk一部分:
iLoop1< iLoopN && iIsOk
或者使用它来切换它
iLoop1++, iIsOk = !iIsOk
或更闪亮(由于变量重复较少,我个人觉得更清楚)
iLoop1++, iIsOk ^= true
| 归档时间: |
|
| 查看次数: |
1101 次 |
| 最近记录: |