En C, il faut déclarer chaque fonction avant de pouvoir l'utiliser. La déclaration informe le compilateur du type des paramètres et du résultat de la fonction. A l'aide de ces données, le compilateur peut contrôler si le nombre et le type des paramètres d'une fonction sont corrects. Si dans le texte du programme la fonction est définie avant son premier appel, elle n'a pas besoin d'être déclarée.
Prototype d'une fonction
La déclaration d'une fonction se fait par un prototype de la fonction qui indique uniquement le type des données transmises et reçues par la fonction.
Déclaration : Prototype d'une fonction
<TypeRés> <NomFonct> (<TypePar1>, <TypePar2>, ...);ou bien
<TypeRés> <NomFonct> (<TypePar1> <NomPar1>, <TypePar2> <NomPar2>, ... );
Attention !
Lors de la déclaration, le nombre et le type des paramètres doivent nécessairement correspondre à ceux de la définition de la fonction.
Noms des paramètres
On peut facultativement inclure les noms des paramètres dans la déclaration, mais ils ne sont pas considérés par le compilateur. Les noms fournissent pourtant une information intéressante pour le programmeur qui peut en déduire le rôle des différents paramètres.
Conseil pratique
Il est d'usage de copier (à l'aide de Edit - Copy & Paste) la première ligne de la définition de la fonction comme déclaration. (N'oubliez pas d'ajouter un point-virgule à la fin de la déclaration !)
Règles pour la déclaration des fonctions
De façon analogue aux déclarations de variables, nous pouvons déclarer une fonction localement ou globalement. La définition des fonctions joue un rôle spécial pour la déclaration. En résumé, nous allons considérer les règles suivantes:
Déclaration locale:
Une fonction peut être
déclarée localement dans la fonction qui l'appelle (avant
la déclaration des variables). Elle est alors disponible à
cette fonction.
Déclaration globale:
Une fonction peut être
déclarée globalement au début du programme
(derrière les instructions #include). Elle est alors
disponible à toutes les fonctions du programme.
Déclaration implicite par la définition:
La
fonction est automatiquement disponible à toutes les fonctions qui
suivent sa définition.
Déclaration multiple:
Une fonction peut être
déclarée plusieurs fois dans le texte d'un programme, mais
les indications doivent concorder.
main
La fonction principale main n'a pas besoin
d'être déclarée.