Non è necessario se prevede un massimo come lei ha fatto e controlla di non sforare questo massimo. Certo, così il programma è soggetto ad alcune limitazioni, ma è pienamente corretto.
Scorretto: in C99 puoi dichiarare variabili (quasi) in ogni luogo. In C89 dovrebbero essere dichiarate solo all'inizio del blocco, ma praticamente tutti i compilatori supportano una dichiarazione a metà blocco (sebbene non tutti nella prima clausola del for).
Edit: notare comunque che si parla di blocco, non funzione.
Se avessi tempo ti cercherei i passi dello standard, ma questi due thread su SO vanno bene pure:
http://stackoverflow.com/questions/2...ariable-in-c99
http://stackoverflow.com/questions/2...placement-in-c


Rispondi quotando