• [^] # Re: précision des flottants

    Posté par . En réponse au message Une calculatrice multibases écrit en C avec GTK+3.. Évalué à -2.

    Merci pour ces critiques,
    une réponse rapide par citations:

    Objectivement, ton code:

    est en franglais. Soit tu codes en français, soit tu codes en anglais, mais évites les mélanges, ça ne fait qu'ajouter à la confusion.

    Je ne comprend pas j'ai coder exclusivement en anglais, ou est-ce mon anglais qui est franglais (c.a.d que je traduit du français littéralement en anglais ce qui ne donne pas un anglais correct) ?

    est monolithique. J'ai l'impression que toute la logique se situe uniquement dans le fichier contenant la fonction main. Tu devrais séparer ton code en unités logiques.

    La fonction main n'appelle pratiquement que la fonction de génération de la GUI et c'est dans les callback de celle-ci que j'appelle les fonctions du programme. Qu'appelle tu unité logique ?

    se répète trop. J'ai l'impression que tu répètes les mêmes blocs de code pour chaque instantiation de structure (ou est-ce un tableau?) de type, par exemple, "Operation": operande_1, operande_2, result.

    C'est normale il y a une structure Operande qui contient les membres dont a besoin une opérande:

    -) Une valeur booléen indiquant si l'opérande est un nombre a virgule ou un entier.
    -) La valeur en décimale (soit en de type long double soit de type long long en fonction que l'opérande est un entier ou un chiffre a virgule.)
    -) La valeur représenter sous forme de string en base 2, 8 et 16 (un membre par base).
    -) Un uint8_t représentant la base qui a été utiliser pour en coder l'opérande.
    -) Un string contenant le string de la valeur qui a été utiliser pour coder l'opérande.

    Cela me permet de pas faire de dégénération lors des conversion entre base avec des appels a des fonctions de conversions de base successifs.

    Après la structure Operation contient entre autre 3 membres de type struct Operande:
    -) Une pour la première opérande.
    -) Une pour la seconde opérande.
    -) Une pour le résultat.
    Et la structure Operation est remis a zéro après chaque opération et n'est instancier qu'au démarrage du programme statiquement.
    Et il existe une fonction pour chaque manipulation de ses membres:
    -) Remise a zéro.
    -) Filling d'une opérande.
    etc...
    C'est la structure principale du programme, GUI hormis.

    tes fonctions ne sont pas assez spécialisées. Elles manipulent des données provenant de nombreuses sources, généralement des variables globales.

    J'en prend bien note. Je pense que mon organisation est trop bordélique pour voir la logique des fonctions et donc leurs spécialisations.

    abuse des variables globales. Ces variables sont à éviter: elles rendent le code très difficile à maintenir, car on ne sait jamais quelle fonction à, ou non, des effets de bord et où s'arrêtent ces effets de bord.

    Je sais qu'il faut éviter les variables globales, j'en ai utiliser le moins possible (c.a.d encore beaucoup trop).

    n'est pas documenté.

    Entièrement d'accord je voulais en finir a la fin et j'ai oublier de faire des sessions de commentaires du code pendant le développement, comme je fait d'habitude, ce qui fait que le code n'est pas très documenter.

    Je ne contredit en rien ce qui été dit mais bon la vision de celui qui code et de celui qui relit n'est jamais la même. J'admets même que ce n'est pas du code C propre, trop noyer par GTK+3.

    PS: Est a cause de l'erreur d'orthographe du mot opérande en anglais que tu dit que mon code est du franglais...???
    Je ne comprend toujours pas cette critique.

    Merci d'avoir pris le temps de lire mon code, c'est vraiment gentil d'avoir fait l'effort je t'en remercie encore une fois.