7.2. Le mode d’emploi d’une fonction : le prototype (ou déclaration)

Icône de l'outil pédagogique Le mode d’emploi d’une fonction : le prototype (ou déclaration)

Un prototype, ça sert à quoi ?

Le prototype est un mode d'emploi pour le programmeur qui veut utiliser une fonction : celui‐ci connaît précisément le nombre des arguments d’appel à fournir, leur ordre, leur type, et la nature de l'éventuelle valeur renvoyée.

Mais les prototypes sont autant destinés au compilateur qu'au programmeur humain. Ils permettent au compilateur d'améliorer la qualité de son travail : grâce au prototype, il peut vérifier la validité d'un appel de fonction, mais aussi forcer des conversions de type si nécessaire.

 

Un prototype, ça ressemble à quoi ?

Regardez la page récapitulative en fin de chapitre : pour chaque fonction, vous y trouverez le dessin du bloc fonctionnel (boîte noire), sa traduction en Langage C sous la forme d’un prototype et plusieurs exemples d’appel illustrant les arguments d’appel possibles.

Voir page récapitulative en fin de chapitre (principales fonctions simples rencontrées) 

Exemple 45 : Prototypes de fonction (les appels sont dans l’exemple suivant)

De plus amples informations sur les prototypes seront fournies après avoir abordé la question « Comment écrire l’appel de fonction ? ». 

Un prototype, ça se trouve où ?

Pour l’utilisateur d’une bibliothèque, les prototypes sont situés dans un fichier particulier appelé fichier en-tête, d’extension .h (Header). Ce fichier en‐tête doit être inclus (recopié) au sommet du fichier source .c qui utilise la fonction, grâce à la directive :

Un prototype peut aussi être écrit au sommet du fichier source .c qui utilise la fonction. C’est surtout utile pour les fonctions que le programmeur définit pour son usage personnel (sans volonté de les diffuser), usage en général limité à un seul fichier.


Le bloc fonctionnel est la « boîte noire » de la fonction : c’est un rectangle avec des flèches rentrantes pour symboliser les données à fournir à la fonction et des flèches sortantes pour représenter les données récupérées en sortie.