Inclure les fichiers d'en-tête par rapport au code source
Lorsque vous travaillez avec plusieurs fichiers sources dans un programme C, il est crucial de comprendre la distinction entre inclure l'en-tête fichiers (.h) et fichiers de code source (.cpp).
Dans l'exemple fourni, vous avez rencontré une erreur lors de l'inclusion "foop.cpp" au lieu de "foop.h" dans le fichier main.cpp. En effet, les fichiers d'en-tête sont spécifiquement conçus pour déclarer des prototypes de fonctions et d'autres informations nécessaires, tandis que les fichiers de code source contiennent les implémentations réelles des fonctions.
Incluant les fichiers d'en-tête
Incluant l'en-tête files permet au compilateur de localiser et de reconnaître les fonctions définies dans d’autres fichiers de code source sans dupliquer les définitions. En incluant "foop.h", le fichier main.cpp accède au prototype de la fonction foo(), permettant au programme de l'appeler sans connaître tous les détails de l'implémentation.
Inclure les fichiers de code source
En revanche, inclure directement « foop.cpp » copierait tout le code de ce fichier dans le fichier main.cpp, entraînant une erreur de définition multiple. Puisque foo() est défini à la fois dans foop.cpp et main.cpp, le compilateur ne sait plus quelle définition utiliser.
Comment ça marche
Lorsque vous incluez un fichier d'en-tête, son contenu est effectivement copié dans le fichier de code source actuel. Par exemple, inclure « foop.h » entraînerait le code équivalent suivant dans main.cpp :
// Header file contents int foo(int a); int main(int argc, char *argv[]) { // Rest of the main.cpp code }
Cependant, inclure « foop.cpp » conduirait à ceci :
// Source code file contents int foo(int a){ return ++a; } int main(int argc, char *argv[]) { // Rest of the main.cpp code }
Conséquences
L'inclusion directe des fichiers de code source peut avoir des conséquences inattendues, telles que comme :
Bonne pratique
Par conséquent, il est toujours recommandé d'inclure des fichiers d'en-tête (.h) lorsque l'on fait référence à des fonctions et des déclarations, et pour conserver l'implémentation du code source dans des fichiers séparés (.cpp). Cela garantit la modularité du code, évite les erreurs et améliore la lisibilité du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!