Bonjour,

Je commence à avoir besoin de modulariser et ai un petit souci sur la méthode pour compiler.

D'abord, quelle est la logique pour répartir le code entre fichiers .c et .h? Je croyais que les .h servaient juste à déclarer l'interface d'un module (ce qui est exporté), mais non seulement il semble qu'un .h puisse contenir du "vrai code", mais je suis tombé sur des exemples de .c qui importent (ou plutôt incluent) leur propre .h ! Ce qui montre que mes présuppositions sont fausses...

Ensuite, par exemple à propos d'un module "toolkit" que j'incluerais partout, malgré l'usage d'un .h et son inclusion, la phase de lien m'envoie des erreurs dès que j'utilise une fonction définie en fait dans le fichier .c (mais bien déclarée dans le .h avec tout son typage de paramètres et de retour). Est-ce que C ou les compilateurs (gcc) ne font pas le lien implicite entre fichiers .c et .h correspondants? Sinon, comment faire moi-même ce lien pour qu'ils "comprennent" (sic)?

Enfin, comment inclure des fichiers qui ne sont pas dans le même répertoire, mais par exemple dans un répertoire au-dessus, parallèle, ou tout autre sous-répertoire dans le super-répertoire de mon projet?

Merci,
Denis