La variable devrait toujours valoir 0 après cette boucle, pas -1. As-tu une implémentation concrète qui renvoie -1?
Non. Je cherche juste un moyen (autre qu'avec un booléen créé pour l'occasion) d'être sûr que la boucle n'ait pas été exécutée une seule fois.
j'ai envie de dire que c'est specifique au compilo, et a la target (debug, release), et qu'il faudrait regarder l'asm genere?
Je pars du principe que ta for est vide, ce qui revient a for (...;...;...);, sinon evidemment oubliez ce que j'ai dit
Zerosquare Le 26/04/2017 à 19:10Edité par Zerosquare le 26/04/2017 à 19:20 Bon j'ai relu, je pensais qu'il y avait une ambiguïté, mais en fait non. Le -1 est bien garanti par la norme. (mal lu)
—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT TurboBon, et bien merci beaucoup pour cette information !
Faudra que je me renseigne précisément, mais j'imagine qu'une norme C n'existe pas en français, et est payante comme bien des normes ?
Le K&R a été traduit très correctement en français (j'ai l'édition de chez Dunod), mais effectivement c'est pas gratuit.
Pour les normes ultérieures (C99, etc.), je ne sais pas s'il y a une traduction. Les textes définitifs sont payantes, mais les versions drafts (brouillons) sont gratuites, et généralement il n'y a quasiment pas de différences.
—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT TurboEn effet i=0 doit etre executé, il est meme for probable que le compilateur si il n'y a aucun code entre
int i=42
for(i=0;...
la premiere assignation soit completement oublié
En fait dans le cadre d'un compilateur optimisant je m'attendrait qu'une telle fonction:
int bla(void)
{
int i=-42;
for (i = 0; i < 42; i++)
{
}
return i;
}
soit remplacé par une simple:
int bla(void)
{
return 42;
}
Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
Uther Le 26/04/2017 à 20:32 Je suppose que si tu pose la question c'est que tu as déjà eu le cas ou i valait -1?
J'aurais dit que i devait toujours être à 0.
Bon ca a l'air d'etre 0 avec GCC et clang.
Il faut voir les flags que -O1 et -O2 active, mais le xor est notoirement plus rapide sur les x86 qu'un mov, j'imagine que la difference est que -O2 fait une passe plus aggressive en terme de vitesse que -O1 qui fait en taille. Apres il me semble que -Os utilise le xor..
Si tu regarde sur les autres archis, le x86 est la seule plateforme a utiliser le xor pour renvoyer 0
Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
Dans Assassin's Creed, l'Animus permet de revivre la mémoire de ses ancêtres par l'hypothèse que cette mémoire est transmise génétiquement de génération en génération.
Après réflexion, je me dis que ce serait souvent assez décevant en pratique. La plupart des gens de ce monde, et "les grands" en particulier, ont surtout eu des enfants jeunes et fait de grandes choses ensuite. On ne peut explorer la mémoire génétique d'un ancêtre que de sa naissance jusqu'à la naissance de son enfant (de son dernier enfant, dans le meilleur des cas). On découvre plus tard dans cette série la possibilité d'explorer les mémoires génétiques d'une autre personne, donc on n'est plus limité à notre propre ascendance, mais ça ne change pas vraiment le problème.
Quant à ceux qui n'auraient pas eu d'enfants ou dont la descendance jusqu'à nous a été interrompue, impossible de remonter jusqu'à eux.
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »
— Legion, geth trolleur à portée galactique