next up previous contents Next:  Les commentaires. Up: Les bases du C. Previous:  Un exemple plus complexe.   Table des matières  

23.1.10  #include et les prototypes.

Au début de chaque programme, il y a des déclarations #include. Elles informent le compilateur de lire dans d'autres programmes en C. Ceci dit, le code ``brut'' ne présente pas de protection totale envers les erreurs: par exemple, la fonction strcpy pourrait tout aussi bien être utilisée avec un, deux, trois ou quatre arguments, ce qui n'empêcherait pas le programme d'être compilé. Cependant, l'exécution se passerait mal du côté de la mémoire s'il n'y avait pas deux arguments et, le programme planterait. Ces autres programmes C avec un suffixe.h sont des en-têtes ou headers. Ils contiennent des modèles (ou templates) sur base desquels les fonctions peuvent être appelées. Chaque fonction que vous utilisez est contenue dans un fichier ``modèle''. Ces modèles sont appelés des prototypes de fonctions (ou function prototypes). [Le C++ possède aussi des ``templates'', mais le terme utilisé en C++ désigne tout autre chose que ce dont nous discutons ici].

Le prototype d'une fonction est écrit comme la fonction elle-même, le code en moins. Un prototype de la fonction word_dump est:

void word_dump (char *filename); 


La terminaison ; est essentielle et permet de distinguer un prototype de fonction de la fonction elle-même.

Après qu'un prototype de fonction ait été défini, toute tentative d'utiliser cette fonction hors de son contexte d'exécution engendrera une erreur sans appel de la part de gcc. Travailler hors contexte d'exécution signifie passer trop ou trop peu d'arguments à cette fonction, ou des arguments non valides.

Vous noterez que #include <string.h> apparaît lorsque nous envisageons d'utiliser des opérations sur les chaînes (strings). La recompilation de ces programmes sans la ligne #include <string.h> engendrerait l'émission d'un avertissement:

mytest.c:21: warning: implicit declaration of function 'strncpy' 


Les prototypes de fonction donnent une définition claire de la manière dont chacune des fonctions est utilisée. En effet, on y trouve le nombre d'arguments et le type de ceux-ci mis en évidence.


next up previous contents Next:  Les commentaires. Up: Les bases du C. Previous:  Un exemple plus complexe.   Table des matières  
1-01-2006