Sur un compilo qui supporte cette syntaxe, l'optimiseur verra que ces variables ont des temps de vie disjoints (leur intersection est nulle), et les mettra donc au même endroit (même place dans la pile, même registre...).
Version imprimable
Sur un compilo qui supporte cette syntaxe, l'optimiseur verra que ces variables ont des temps de vie disjoints (leur intersection est nulle), et les mettra donc au même endroit (même place dans la pile, même registre...).
merci :mrgreen:
Mais je persiste à dire que pour moi c'est moins lisible, et je me conforme à C90 et avant ... ;)
Euh, les variables locales ne sont pas 'dans la fonction', mais dans la mémoire automatique. Un compilateur intelligent (ils ne le sont pas tous) saura attribuer le même espace mémoire (même adresse, même registre...) aux deux variables.Citation:
Envoyé par souviron34
Autant je n'aime pas trop la définition d'une variable au mileu du code, et je préfère dans ce cas créer un bloc, autant je trouve que la définition dans le for() est un réel progrès, question lisibilité et allégement du code (chez moi, ça ferait un bloc de moins).Citation:
Envoyé par souviron34
Bah question d'habitude je pense....Citation:
Envoyé par Emmanuel Delahaye
Pour moi c'est le contraire.... :D
la syntaxe for(int i;... est elle un veritable progres et je l'apprecie.Citation:
Envoyé par Ksempac
Quant au temp, ici il est en debut de bloc, il n'y a donc pas de probleme
Non, pas au debut de la fonction, au debut du bloc.Citation:
Envoyé par Ksempac
Ce que je critique, ce n'est pas la declaration de variable dans les blocs, bien au contraire (declare une variable en dehors du bloc ou elle est utile n'a pas d'interet et est peu lisible). Par contre, a l'interieur d'un bloc, il est preferable, sauf cas particulier, de declarer les variables avant toute instruction (hors instruction utilise pour l'initialisation des variables bien entendu)