int sum_square(i,j) /* liste des noms des paramètres formels */ int i, int j; /* déclaration du type des paramètres */ { int resultat; resultat = i*i + j*j; return(resultat); }
En ce qui concerne la déclaration de fonction externe, il faut préfixer avec le mot-clé extern, l'en-tête de la fonction débarrassée de la liste des noms des paramètres, comme ceci :
extern int sum_square();
Dans ce cas, le compilateur ne connaît pas le type des paramètres de
la fonction, il lui est donc impossible de détecter une erreur portant
sur le type des paramètres lors d'un appel de fonction externe.
Cette situation est assez catastrophique et c'est la raison pour laquelle
le comité de normalisation a introduit le concept de prototype de fonction
vu au chapitre .
Il n'a cependant pas voulu faire un changement incompatible, il a donc
décidé que les deux méthodes étaient acceptées, en précisant toutefois
que la méthode K&R était une caractéristique obsolescente.
En clair, cela signifie que cette méthode sera abandonnée dans la prochaine
révision de la norme, si prochaine révision il y a.