2011-08-18 77 views
0

在编写while循环没有身体,我看到了这条消息:警告信息的目的?

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

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

+0

您可以发布你的代码? –

+0

那,你没有忘记一个“做”。 – Owen

+1

我更喜欢for语句。缺少其中一个部分就像黑板上的钉子。因为(;;)功能特别强大。 –

回答

5

是 - 通常情况是把它放在一个行本身,这样的事情:

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

一些人更喜欢使用了诸如:

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

'/ *这个范围有意留空白* /' –

1

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

4

为什么要放一个空格?是否更清楚地表明我的循环没有做任何事情?

是的,正是如此。

许多缺乏经验的程序员常常把;forwhile流程控制语句后,因为他们认为;去在每行的末尾,而不是仅仅在声明和宣言的终结。该警告只是为了让你更清楚地知道你已经创建了一个空循环。

2

一个比较明显的空体循环语法是使用continue声明:

while (condition_with_side_effects) 
    continue; 

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

while (condition); // bad style