[gull] cours C++
Daniel Cordey
dc at mjt.ch
Mon Mar 6 13:35:16 CET 2006
On Thursday 02 March 2006 13:49, Leopoldo Ghielmetti wrote:
> Les procedures sont celles qui se comportent comme n'importe quelle
> fonction C qui ne retourne pas de valeur et je les entoure par
> do{...}while(0)
En etant conscient que si la macro est incluse dans une boucle, un test
suplementaire sera effectue a chaque fois + branchement. Suivant les
architectures et les compilateurs, les "branch-prediction" peuvent etre assez
differents et engendrer des variations de performances qu'il n'est pas facile
a expliquer a premiere vue. C'est souvent assez "radical" sur les processeurs
avec un long "pipeline". Maintenant, il se peut que l'optimiseur soit assez
intelligent pour detecter l'utilisation de la constante '0' dans le test et
supprimer la generation de l'encapsulation du bloc. Je sais que pas mal
d'optimisation a ce niveau existe dans l'analyse des boucle 'for', mais je ne
suis pas pesuade que cela soit aussi le cas dans les do-while. Donc,
attention...
dc
More information about the gull
mailing list