• [^] # Re: Comparatif Intel C++ 7.0 / Gcc 3.2.1

    Posté par . En réponse à la dépêche Comparatif Intel C++ 7.0 / Gcc 3.2.1. Évalué à 3.

    Ce qui est normal car le language C doit être portable.

    Je n'ai pas dit le contraire, mais utiliser des extensions devient donc nécessaire pour écrire un noyau (ne serait-ce qu'à cause de l'assembleur in-line ou de méthodes spéciales de passage de paramètres).

    Enfin, les compilateurs font un très bon travaille d'optimisation automatiquement dans la grand majorité des cas

    Je suis parfaitement d'accord, mais encore une fois, quand on touche au trop bas niveau, les optimisations qui normalement ne changent rien peuvent modifier le comportement du programme, d'où la nécessité de pouvoir les contrôller dans un noyau.

    Sinon, certaines choses comme les attributes "pure" ou autres de gcc permettent au compilateur de mieux optimiser, et là, via autoconf ou tout simplement le préprocesseur, on peut faire du code portable sur d'autres compilateurs et qui les utilise:

    #ifdef __GNU_C
    #define __GNU_PURE__ __attribute__((pure))
    #else
    #define __GNU_PURE__
    #endif

    et ensuite, il suffit d'utiliser __GNU_PURE__. Mais là on rentre dans un autre débat ;)