警告信息目的?

时间:2011-08-18 22:01:11

标签: c++ compiler-construction warnings

在没有正文的情况下编译while循环时,我看到了这样的消息:

warning: suggest a space before ';' or explicit braces around empty body in
'while' statement

我为什么要放一个空间?它是否更清楚我的循环没有真正做任何事情?

4 个答案:

答案 0 :(得分:5)

是的 - 通常的惯例是将它单独放在一条线上,如下所示:

while (*d++ = *s++)
    ;

有些人喜欢使用以下内容:

while (*d++ = *s++)
{
    /* intentionally empty */
}

答案 1 :(得分:4)

  
    

我为什么要放一个空间?它是否更清楚我的循环没有真正做任何事情?

  

是的,就是这样。

许多缺乏经验的程序员经常将;置于forwhile之类的控制流语句之后,因为他们认为;位于每行的末尾,而不是就在声明和声明的最后。该警告只是建议您更清楚地了解您已经创建了一个空循环。

答案 2 :(得分:2)

更明显的空体循环语法是使用continue语句:

while (condition_with_side_effects)
    continue;

这样,没有人会认为你不小心添加了一个无关的;

while (condition);    // bad style

答案 3 :(得分:1)

是的,这只是为了表明您没有在错误的行尾自动放置分号。