9.4.1 Déclaration (prototype) d'une fonction

Icône de l'outil pédagogique Déclaration (prototype) d'une fonction

Nous avons déjà expliqué que le prototype est un mode d'emploi :

– pour le programmeur qui veut utiliser une fonction : il connaît alors précisément le nombre des arguments à fournir, leur ordre, leur type, et la nature de l'éventuelle valeur renvoyée.
– Pour le compilateur, qui effectue des vérifications et procède aux conversions nécessaires.

Pour fabriquer un prototype, il suffit souvent de recopier l'en‐tête de chaque fonction, terminé par un point‐virgule, au début du fichier. Le prototype (ou déclaration) de la fonction a pour syntaxe générale :

 

type_fonction nom_fonction(type par1, type par2 ...) ;

 

Si le type de l'information transmise par la fonction appelante (appelée argument d’appel ou encore paramètre effectif) ne coïncide pas avec le type qui figure dans le prototype, le compilateur forcera la conversion de la valeur transmise pour qu'elle corresponde au prototype (si c’est possible !).

Il faut placer en tête d'un fichier les prototypes de toutes les fonctions qui y sont utilisées, même si leur définition suit. Cela permet de ne pas se soucier de l'ordre dans lequel se succèdent les définitions de fonction.

Une meilleure solution consiste à regrouper les prototypes dans un ou plusieurs fichiers entête, qu'il suffit alors d'inclure au sommet du fichier utilisateur des fonctions.

 

Quel lien existe entre prototype et fichier en‐tête ?


Les fichiers en‐tête d'extension .h contiennent (entre autres) des prototypes des fonction. Ainsi, math.h contient les prototypes de toutes les fonctions mathématiques disponibles en bibliothèque.

Vous serez amené rapidement à écrire vos propres fichiers en‐tête, qui contiennent les prototypes des fonctions dont vous êtes l'auteur (voir chapitre sur la compilation séparée). Bien sûr, vous utilisez déjà les fichiers en‐tête des bibliothèques de fonction fournies avec votre environnement de développement.

Voir le chapitre « Utilisation de fonctions » pour plus de détails et des exemples d’appel.