Bonjour la Guilde !
Raphaël Dorado a écrit :
> La solution sale et rapide, c'est de rajouter "static" devant chaque
> fonction déclarée dans ludcmp.h.
Une autre solution est de qualifier ces fonctions de « inline » plutôt
que « static ». Historiquement, « inline » demandait au compilateur de
recopier le corps de la fonction au point d'appel. Cependant, les
compilateurs modernes ont tendance à ignorer ça et à décider par eux
mêmes. Un effet secondaire de « inline » est que tu as le droit de
définir la fonction dans plusieurs unités de compilation, à condition
que ces définitions soient identiques. Si le compilateur décide de faire
une vraie fonction appelable, alors ces définitions seront combinées par
l'éditeur de liens en use seule :
– static : une implémentation par unité de compilation
– inline : une implémentation unique partagée par toutes les unités de
compilation.
Après, si les fonction sont non triviales, la bonne solution consiste à
mettre leur implémentation dans un fichier .cpp, et laisser les seules
déclarations dans le .h.
À+,
Edgar.