2012-03-27 51 views
1

所以,當我爲我的下一個應用程序更新開發一些代碼時,我注意到了一些奇怪的現象:您可以在Objective-C語句的末尾添加大量的分號,它會編譯得很好!哎呀,它也運行相同。爲什麼在這個世界上這個工作?多分號線結束:可接受?

+1

每個分號終止一個語句。您可以根據需要在一條線上添加儘可能多的語句。爲什麼*不應該*這項工作? – 2012-03-27 04:02:42

+0

如果語言的語法需要一個,而您恰好不想做任何事,那麼禁止這樣做會很難創建一個空的語句。 – 2012-03-27 04:03:22

+0

我一直認爲分號在一個句子中工作的時間段(你只需要一個,而且任何一個都會做一些奇怪的事情)。 – CodaFi 2012-03-27 04:03:23

回答

6

分號僅用於結束當前語句。空語句可以出現在C的語言,例如:

int len = 0; 
while(str[len++]); // count the length of a null-terminated string 
if (1) {} else { printf("Uh oh... this can't be happening!\n"); } 

他們沒有做任何事情。

在行的末尾放置任意數量的分號僅僅是一個極端情況。

5

每個額外的分號代表一個不執行任何操作的語句。

此外,像0;這樣的簡單表達式是無效的合法代碼。