Visibilité des indices déclarés dans des boucles
Bonjour
Je viens de tomber sur un cas particulier. Ce code compile sous Windows :
Code:
1 2 3 4 5
| for(int i=0; i < 10; i++)
doSomething();
for(int i=0; i < 10; i++)
doSomething(); |
Mais par sur AIX, car le compilateur que nous utilisons sur AIX considère que i reste visible après la boucle, et il faut écrire (par exemple) :
Code:
1 2 3 4 5 6 7
| int i = 0;
for(i=0; i < 10; i++)
doSomething();
for(i=0; i < 10; i++)
doSomething(); |
Pour être portable. J'ai donc eu un débat sur le sujet avec un collègue, et je n'ai rien trouvé dans la norme concernant cette ambiguité.
Pensez vous que la norme est claire sur ce point ? Que dit elle alors ? Qu'en pensez vous (indépendamment de la norme) ?