• [^] # Re: roudme

    Posté par (site web personnel) . En réponse au journal Changer le mode d'arrondi IEEE754 avec roundme. Évalué à 2.

    Je lisais le code source en me disant :
    Je comprend pas, je trouve pas ça si mal... Puis je ne voyais pas de boucle... Et je ne comprenais pas trop cette histoire de strcmp...

    Et puis là j'ai réalisé que je regardais la dernière version commitée du fichier qui tenait compte de tes remarques. Donc pour ceux qui se sont fait avoir comme moi :
    http://roundme.svn.sourceforge.net/viewvc/roundme/trunk/src/(...)

    Au passage, is_chaines_eq est particulièrement moche :

    strlen qui est en o(n) est appelé 2 fois au début pour rien : quand on lit le code on croit en une optimisation du genre : "si la taille diffère, pas la peine de parcourir les chaines" mais strlen a besoin de parcourir les chaines...

    Le code aurait pu se réduire à

    int is_chaines_eq(const char* chaine1, const char* chaine2)
    {
    while (*chaine1 == *chaine2 && *chaine1 != '0円') {
    chaine1++;
    chaine2++;
    }
    return *chaine1 == *chaine2;
    }

    Et tester que chaine1 et chaine2 ne sont pas égales à NULL n'est peut être pas un luxe.

    (et au passage, j'aurais pas mélangé anglais/français)