2014-04-19 58 views
15

我碰到這在C標準文本來了,任何版本我能找到C99或C11,在§6.8.5:有沒有辦法在C中創建一個只有兩個表達式的for循環?

iteration-statement: 
    while (expression) statement 
    do statement while (expression) ; 
    for (expression ; expression ; expression) statement 
    for (declaration expression ; expression) statement 

第四項這裏似乎是一個for只有一個分號,我沒有看到任何其他地方對此語法的任何引用。任何人都可以在這裏解釋我錯過了什麼?

+1

這似乎並沒有編譯。也許這是一個錯字,他們打算在之後有一個額外的分號,沒有身體? – merlin2011

+1

@ merlin2011:沒有人注意到了十多年,錯別字找到C11的方式? –

+1

看起來你終於發現了它...... :-) –

回答

24

的生產declaration是:

聲明:
       聲明 - 符初始化說明符列表選擇;

所以分號已經是它的一部分了。

+0

看起來像OP錯過了(或忘記)這個小東西...... :) +1! –

+1

很好,是的,我錯過了這個小東西!謝謝!很好找nwellnhof –

+0

哦,等等,所以我可以在for循環中使用'static_assert-declaration'?它在C11的聲明語法中。 –

相關問題