
Un programme C est souvent composé de plusieurs fonctions, les unes en appelant d'autres. Les fonctions sont déclarées de la manière suivante : type_résultat nom_fonction(type_arg1 nom_arg1, type_arg2 nom_arg2.....) { corps de la fonction }; "type_résultat nom_fonction(type_arg1 nom_arg1, type_arg2 nom_arg2.....)" s'appelle le prototype de la fonction. On peut aussi écrire type_résultat nom_fonction(type_arg1 nom_arg1, type_arg2 nom_arg2.....);, cela signifie "bon il y aura la fonction nom_fonction qui prend tels arguments et renvoie tel résultat, mais je vais la définir plus tard". Ainsi la fonction peut être utilisée dans la définition d'autres fonctions, meme si le programme ne sait pas encore exactement ce qu'elle fait. Exemple : #include <stdio.h> ; int fonction1 (int i) ; int main (void) { int k ; printf("%d \n",k); fonction1(3) ; printf("%d \n",k); return 0 ; /* le return 0 permet de dire à l'OS que le main s'est correctemet terminé */ } int fonction1 (int i) { int j = i*i ; return j ; } </stdio.h> Examinons ce qui est écrit ci-dessus : #include <stdio.h> ; </stdio.h> voir la rubrique Librairies, include, headers int main (void) { int k ; printf("%d \n",k); fonction1(3) ; printf("%d \n",k); return 0 ; /* le return 0 permet de dire à l'OS que le main s'est correctemet terminé */ }
Une fonction ne peux renvoyer qu'un seul résultat (si on veut obtenir plusieurs information, on peut soit créer une structure de donnée spécifique, utiliser des variables globales ou des pointeurs... ) Ok, il y a plusieurs fonctions dans un fichier de code, mais par laquelle le programme va-t-il commencer ? Il commencera par la fonction qui s'appelera "main". Cette fonction doit oblicatoirement apparaître dans le code. Généralement on la définie en premier, ou en dernier afin de la retrouver facilement dans le code.