2014-04-19 16 views
15

natknąłem to w tekście standardowej C, dowolną wersję można znaleźć na C99 lub C11, w §6.8.5:Czy istnieje sposób utworzenia pętli for z tylko dwoma wyrażeniami w C?

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

Czwarta pozycja tutaj wydaje się być for tylko jeden średnik i Nie widzę żadnego odniesienia do tej składni nigdzie indziej. Czy ktoś tutaj może wyjaśnić, czego mi brakuje?

+1

To też nie wydaje się kompilować. Może to był literówka i mieli po sobie dodatkowy średnik, bez ciała? – merlin2011

+1

@ merlin2011: i nikt nie zauważył od ponad dziesięciu lat, literówka znalazła drogę do C11? –

+1

Wygląda na to, że w końcu to odkryłeś ... :-) –

Odpowiedz

24

Produkcja dla declaration jest:

deklaracja:
        deklaracji Specyfikatory-init-declarator-lista opt;

Więc średnik jest już częścią tego.

+0

wygląda na to, że OP przegapił (lub zapomniał) tę małą rzecz ... :) +1 !! –

+1

Świetnie, tak, tęskniłem za tą małą rzeczą! Dzięki! Nice find nwellnhof –

+0

Oh czekaj, więc mogę użyć 'static_assert-declaration' w pętli for? Jest w składni deklaracji w C11. –

Powiązane problemy