• [^] # Re: #define public

    Posté par (site web personnel, Mastodon) . En réponse au journal À table !. Évalué à 6.

    Sauf que cacher les symboles internes n'a pas je pense un grand intérêt en particulier dans une bibliothèque libre.

    ça évite que quelqu'un utilise le même symbole dans une autre partie du code et que ça déclenche un conflit.

    Selon le type d'édition de lien (librairie statique ou dynamique, utilisation du "symbolic linking" ou pas, activation de la link-time optimization, dlopen, ...), ça peut donner des effets différents: le symbole de la librairie est utilisé à la place de celui du programme, ou l'inverse, ou ils vivent leur vie chacun de leur côté.

    Il y a en plus de possibles impacts sur les performances (si un symbole est exporté et peut être remplacé, cela limite les optimisations que le compilateur peut faire).