Bonjour
Je n'ai jamais eu ce problème. Et sans doute vous non plus !
Une copie du debugging vaudra mieux qu'un long discours.
Comme on peut le constater, la première partie de main() est un copier/coller de foo().
1) la première partie de main() fonctionne bien (voir la console)
2) foo() dysfonctionne complètement. Le debugging montre que
* pour x = 0 on a (x != 0) = true (cf b1) ce qui donne une boucle infinie à l'exécution.
* pour j = 48 on a (j > 15) = false (cf b2) ce qui ne stoppe pas la boucle infinie.
Je n'y comprends rien ! Toute idée est la bienvenue. Merci d'avance.
PS : en général __builtin_clzll() n'est pas définie en 0. La variable 'j' est donc aléatoire pour x = 0 : la valeur '48' n'est donc pas reproductible.
Il est d'ailleurs très probable que ce bug ne le soit pas non plus !
Contexte : Windows 10 // Code::Blocs 25.03 // MinGW_w64 Compiler (-O3)








Répondre avec citation
Partager