J'essaie de m'enseigner moi-même la programmation C et j'utilise DevC++ pour mon IDE sous Windows XP. Je suis un peu confus sur la façon correcte d'appeler mes propres fichiers d'en-tête.Fichiers d'en-tête C - façon correcte d'inclure
J'ai mon fichier source appelé main.c et un fichier séparé pour les fonctions appelé myFunctions.c que je comprends dans main.c en utilisant « Include « myFunctions.h » avec tous mes prototypes de fonctions résidant dans cet en-tête fichier.
myFunctions.c contient deux fonctions appelées showDate() et une appelée showScreen() et les deux fonctions peuvent être appelées depuis main.call bien. Mes problèmes ont commencé quand j'ai essayé d'appeler showDate() depuis showScreen() et pendant la compilation/liaison, il se plaignait parce que je n'avais pas de prototype dans myFunctions.c pour showDate().
Ce que je veux savoir, c'est lequel des éléments suivants dois-je faire?
comprennent "myFunctions.h" à l'intérieur myFunctions.c
- Déclarer le prototype dans les deux myFunctions.h et myFunctions.c
- Déclare le prototype en seulement myFunctions.c seulement
Tout ce qui précède semble corriger l'erreur du compilateur et me permettre d'appeler la fonction bot à partir de main.c et myFunctions.c mais je ne peux pas trouver une source définitive dont la procédure correcte.
Peut-être envisager la visibilité avant de choisir entre # 1 et # 3. Utilisez # 1 si vous avez besoin d'appeler cette fonction à partir d'un autre fichier .c. Utilisez # 3 si la fonction n'est pas nécessaire ailleurs qu'en dehors du fichier local. De cette façon, vous réduisez l'encombrement dans vos fichiers d'en-tête et vous pouvez vraiment les utiliser comme définition d'interface. –
Droite. Les fonctions appelées d'ailleurs doivent être dans le fichier .h. Les fonctions internes doivent être déclarées statiques et prototypées dans le fichier .c. Cela donne à C une modularité bien nécessaire. –