K&R C while循环省略了大括号
根据我的理解,对于包含多个语句的任何'语言中的标准构造'(例如for循环/ if语句等,我不知道它的真正单词),需要打开和关闭大括号。 那么,为什么这个K&R C有效......
while((len = getline(line, MAXLINE)) > 0)
if(len > max) {
max = len;
copy(longest, line);
}
while循环中没有大括号,但它包含多个语句(if为true时)。 这是来自K&R的The C Programming Language第二版中的例子1.9。
在你的情况下,你的while循环中只有一条语句是if
条件。 在这种情况下,这段代码是正确的。
因为if
被读取作为单个语句体的while
。 这是完全有效的。