这是一个有效的C命令/指令吗?

时间:2011-03-01 18:25:02

标签: c syntax

我正在查看别人做的一些代码,我看到了:

            if (numDetects == 0) {

                Table[Index].minF = 

            Table[Index].maxF = F;

            }

表[索引] .minF =空白对我没有任何意义。我生命中从未见过这一点。但是代码确实可以编译运行,所以有人可以向我解释一下是否有可能只留下一个等号?谢谢!

5 个答案:

答案 0 :(得分:7)

是; C不关心第一行和第二行之间的空白区域,因此它将其视为

Table[Index].minF = Table[Index].maxF = F;

它在语法上等同于

Table[Index].minF = (Table[Index].maxF = F);

因为赋值运算符=不仅将左侧指定给右侧,而且还返回已分配的值。在这种情况下,然后将该返回值分配给外部左侧。

答案 1 :(得分:6)

是的,这与:

相同
Table[Index].minF = Table[Index].maxF = F;

赋值运算符(=)可以像任何其他运算符一样链接。它从右到左进行评估,每个评估返回分配的值。所以这相当于以下两个陈述。

Table[Index].maxF = F;
Table[Index].minF = Table[Index].maxF;

答案 2 :(得分:2)

白色空间并不重要。该行真的读了

Table[Index].minF = Table[Index].maxF = F;

相当于

int a;
int b;

a = b = 0;

答案 3 :(得分:2)

相当于:

Table[Index].minF = Table[Index].maxF = F;

答案 4 :(得分:1)

忽略空格,并将其全部评估为......

Table[Index].minF = Table[Index].maxF = F;