5.5 Visibilité des fonctions

La définition d'une fonction comprend un en-tête (appelé prototype), indiquant le type de la valeur qu'elle retourne ainsi que la liste et le type des arguments transmis, et une instruction composée (appelée corps de la fonction), renfermant des déclarations d'objets et des instructions exécutables.

La déclaration d'une fonction s'effectue au moyen de son prototype.

Lors de l'appel à une fonction, pour que le compilateur connaisse le type de la valeur qu'elle retourne et puisse vérifier le nombre ainsi que le type des arguments transmis, il est nécessaire qu'il ait visibilité sur le prototype de cette fonction.

Cette visibilité existe lorsque :

Lorsque que le compilateur n'a pas cette visibilité, il suppose que la valeur retournée par la fonction est de type int.

Une fonction ne peut être contenue dans une autre fonction, de ce fait toutes les fonctions sont externes. C'est pourquoi préciser l'attribut extern, que ce soit lors de la déclaration ou lors de la définition de la fonction, n'apporte aucune information supplémentaire.

A l'instar des variables, une fonction peut n'être connue que dans le fichier dans lequel elle a été définie. Pour cela on indiquera l'attribut static lors de sa définition.


Pr. Marc BUFFAT
buffat@ufrmeca.univ-lyon1.fr
2004-12-01