【发布时间】:2017-06-19 07:59:52
【问题描述】:
对于 Linux gcc 4.4.7 中的以下警告,我需要您的帮助
for (int iLoop1= 0; iLoop1< iLoopN; ++iLoop1, ++iLoop2, !iIsOk)
最后一个逗号后的最后一个参数发出以下警告
error: right-hand operand of comma has no effect
我已阅读有关逗号运算符的 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;
}
}
输出:
IsOk=0
IsOk=0
IsOk2=0
IsOk2=1
【问题讨论】:
-
你打算用
!iIsOk这个表达式达到什么目的? -
最后一个变量不应该是
iAmOk吗? -
i 表示 int ,我根据类型使用前缀