Programmer en langage C
100
© Éditions Eyrolles
Voici un exemple illustrant deux des situations évoquées. Nous y définissons une fonction
affiche_carres qui affiche les carrés des nombres entiers compris entre deux limites fournies en arguments et une fonction erreur qui se contente d’afficher un message d’erreur (il
s’agit de notre premier exemple de programme source contenant plus de deux fonctions).
#include
main()
{ void affiche_carres (int, int) ; /* prototype de affiche_carres */
void erreur (void) ;
/* prototype de erreur */
int debut = 5, fin = 10 ;
.....
affiche_carres (debut, fin) ;
.....
if (...) erreur () ;
}
void affiche_carres (int d, int f)
{ int i ;
for (i=d ; i<=f ; i++)
printf ("%d a pour carré %d\n", i, i*i) ;
}
void erreur (void)
{ printf ("*** erreur ***\n") ; }
3.4 Les anciennes formes de l’en-tête des fonctions
Dans la première version du langage C, telle qu’elle a été définie par Kernighan et Ritchie,
avant la normalisation par le comité ANSI, l’en-tête d’une fonction s’écrivait différemment de
ce que nous avons vu ici. Par exemple, l’en-tête de notre fonction fexple aurait été :
float fexple (x, b, c)
float x ;
int b, c ;
La norme ANSI autorise les deux formes, lesquelles sont actuellement acceptées par la plupart
des compilateurs. Toutefois, seule la forme moderne, c’est-à-dire celle que nous avons présentée
précédemment, sera autorisée par C++.
L ’habitude veut que les en-têtes écrits sous l’ancienne forme le soient sur plusieurs lignes
comme dans notre exemple. Mais rien ne nous empêcherait de l’écrire sous cette forme :
float fexple (x, b, c) float x ; int b, c ;
Delannoy Livre.book Page 100 Mercredi, 6. mai 2009 4:26 16
Précédent

- 113/281

Suivant