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

O_O*_*O_O 5 c syntax

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

            if (numDetects == 0) {

                Table[Index].minF = 

            Table[Index].maxF = F;

            }
Run Code Online (Sandbox Code Playgroud)

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

Wil*_*den 7

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

Table[Index].minF = Table[Index].maxF = F;
Run Code Online (Sandbox Code Playgroud)

它在语法上等同于

Table[Index].minF = (Table[Index].maxF = F);
Run Code Online (Sandbox Code Playgroud)

由于赋值运算符=不仅将左侧指定给右侧,而且还返回已指定的值.在这种情况下,该返回值然后又被分配给外侧左侧.


Jay*_*rod 6

是的,这与以下相同:

Table[Index].minF = Table[Index].maxF = F;
Run Code Online (Sandbox Code Playgroud)

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

Table[Index].maxF = F;
Table[Index].minF = Table[Index].maxF;
Run Code Online (Sandbox Code Playgroud)