这可能是一个微不足道的问题,但我不知道答案。这一直困扰着我今天下午。可能重复:
C++ Comma Operator
我刚刚编写了一个将RVB转换为YUV的函数。没有什么特别的,但错误地使用逗号(,)代替我的数字中的点。
它编译但结果不是我的预期,例如“-3713796”而不是0-255范围编号。
(0,615*(double) 61) - (0,51498*(double) 61) - (0,10001*(double) 61)
那是什么意思?
如果它不是编译错误,它可能对某些东西有用,但是什么?
Ps:我在Qt上使用C ++。
答案 0 :(得分:7)
您不小心使用了comma operator。它计算第一个操作数并丢弃结果,然后计算第二个操作数并返回其值和类型。
根据我的经验,它最常用于循环语句中。有关其他用途,请参阅Uses of C comma operator
答案 1 :(得分:1)
它是逗号运算符,它计算每个操作数并返回最右边的操作数。在这种情况下,它评估为0,然后是615*(double) 61
并得出该产品的值。