快一个。以下是等价的吗?他们中的任何一个是否比其他人更经济或更“正确”?
while (x==y) {}
, while (x==y) ;
& while (x==y);
.
注意第二个而不是第三个中的右表达式括号和分号之间的空格。
过去我倾向于使用第一个。塔
快一个。以下是等价的吗?他们中的任何一个是否比其他人更经济或更“正确”?
while (x==y) {}
, while (x==y) ;
& while (x==y);
.
注意第二个而不是第三个中的右表达式括号和分号之间的空格。
过去我倾向于使用第一个。塔
第二个和第三个没有区别。
第一个的唯一区别是可读性 - 你明确声明你想要一个无限循环,而不是你有一个错字(额外的;
)。
它们都是完全等价的,并且应该使用任何半理智的编译器生成相同的程序。空格不重要,两者都{}
代表;
空语句。
通常当你做这样的事情时,你仍然把分号放在它自己的行上,以表明它不仅仅是由酸添加的:
while (whatever)
;
当然,您通常只在whatever
有副作用时才这样做,例如:
// skip to end of line:
while (((ch=getchar()) != '\n') && (ch != EOF))
;
但是,您使用的空语句的确切语法形式极不可能影响生成的代码,因此这纯粹是针对读者而不是编译器进行优化。