2011-08-18 135 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