【发布时间】:2014-01-10 06:38:59
【问题描述】:
据我了解,对于包含多个语句的任何“语言中的标准构造”(例如 for 循环/if 语句等。我不知道它的真正含义),您都需要打开和关闭大括号。那么,为什么这个 K&R C 有效...
while((len = getline(line, MAXLINE)) > 0)
if(len > max) {
max = len;
copy(longest, line);
}
while 循环中没有大括号,但它确实包含多个语句(当 if 为真时)。这是来自 K&R 的 The C Programming Language 第 2 版中的示例 1.9。
【问题讨论】:
-
while 循环只包含一个语句:
if语句。 -
if-block 算作一个语句...等等,真正的问题在哪里? -
if或for或do ... while也可以这样做。任何可以有块语句的地方,如果只有一个语句,那么大括号可以省略(函数体除外)。虽然它起源于旧的 K&R C,但它也符合现代标准。 -
对此的答案确实需要引用标准 IMO...
-
while 循环是
while (condition) statement。if (condition) { statements }是一个声明。额外的大括号是可取的(我会把它们放在那里)但不是必需的。
标签: c