警告消息的目的?

问题描述 投票:0回答:4

在编译没有主体的 while 循环时,我看到了这条消息:

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

为什么要加一个空格?是为了更清楚地表明我的循环实际上没有做任何事情吗?

c++ warnings
4个回答
5
投票

是的——通常的约定是将其单独放在一行上,如下所示:

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

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

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

4
投票

为什么要加一个空格?是为了更清楚地表明我的循环实际上没有做任何事情吗?

是的,正是如此。

许多缺乏经验的程序员经常将

;
放在控制流语句(如
for
while
)之后,因为他们认为
;
位于每行的末尾,而不仅仅是语句和声明的末尾。该警告只是建议您更清楚地了解您已经创建了一个空循环。


3
投票

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

continue
语句:

while (condition_with_side_effects)
    continue;

这样就没有人会认为你不小心添加了无关的

;
:

while (condition);    // bad style

1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.