在没有正文的情况下编译while循环时,我看到了这样的消息:
warning: suggest a space before ';' or explicit braces around empty body in
'while' statement
我为什么要放一个空间?它是否更清楚我的循环没有真正做任何事情?
答案 0 :(得分:5)
是的 - 通常的惯例是将它单独放在一条线上,如下所示:
while (*d++ = *s++)
;
有些人喜欢使用以下内容:
while (*d++ = *s++)
{
/* intentionally empty */
}
答案 1 :(得分:4)
我为什么要放一个空间?它是否更清楚我的循环没有真正做任何事情?
是的,就是这样。
许多缺乏经验的程序员经常将;
置于for
或while
之类的控制流语句之后,因为他们认为;
位于每行的末尾,而不是就在声明和声明的最后。该警告只是建议您更清楚地了解您已经创建了一个空循环。
答案 2 :(得分:2)
更明显的空体循环语法是使用continue
语句:
while (condition_with_side_effects)
continue;
这样,没有人会认为你不小心添加了一个无关的;
:
while (condition); // bad style
答案 3 :(得分:1)
是的,这只是为了表明您没有在错误的行尾自动放置分号。