Don_Angelo 27 Posté(e) le 25 mai 2006 Partager Posté(e) le 25 mai 2006 hello, une petite question bizzare pour changer :oups En fait je me demandais si deux codes sources synonymes, une fois compilés, donneraient le même executable. Un exemple tout bête, on peut incrémenter une variable de trois façons: ma_variable++; ma_variable+=1; ma_variable=ma_variable+1; Une fois compilée, ces trois instructions sont-elle identiques? En d'autre termes, est-il possible d'obtenir le même code compilé avec deux codes sources différents? Lien à poster
thev 0 Posté(e) le 25 mai 2006 Partager Posté(e) le 25 mai 2006 Ces trois instructions étant des façons différentes d'écrire la même chose dans ton langage de haut niveau, le compilateur va sûrement les traduire de la même manière, donc il est fort possible que tu aies trois exécutables identiques. (Au fait pourquoi avoir titré "collision" ?) @+ Lien à poster
Don_Angelo 27 Posté(e) le 25 mai 2006 Auteur Partager Posté(e) le 25 mai 2006 Ces trois instructions étant des façons différentes d'écrire la même chose dans ton langage de haut niveau, le compilateur va sûrement les traduire de la même manière, donc il est fort possible que tu aies trois exécutables identiques. (Au fait pourquoi avoir titré "collision" ?) @+ Ok, je vois. merci. Pour ce qui est du titre, collision, en référence à l'article sur les collisions MD5 qui m'a collé cette question dans le crâne. Lien à poster
Gfx 0 Posté(e) le 25 mai 2006 Partager Posté(e) le 25 mai 2006 Si je me souviens bien les compilateurs ne compilent pas forcément de la même manière (il faut vérifier les instructions du CPU pour ça). Mais au final ça fera pareil dans ton soft Lien à poster
rjds 0 Posté(e) le 25 mai 2006 Partager Posté(e) le 25 mai 2006 cela dit je pense que tout compilo qui se respecte doit être en mesure de detecter que ces 3 instructions se valent, et pondre le meme code asm. Lien à poster
frisco2000 0 Posté(e) le 4 juillet 2006 Partager Posté(e) le 4 juillet 2006 bonjour si tu veux voir si le code est le meme , tu peux utiliser l'optionde gcc --save-temps dans le cas ou ma_variable : est un type e base ( char , int , float .. le code devrait être le même) si c'est une classe alors le coe peut différer. Lien à poster
Messages recommandés