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 。 这是完全有效的。

链接地址: http://www.djcxy.com/p/84323.html

上一篇: K&R C while loop omitting braces

下一篇: How does C++ automatically call destructor?