Quand un programme devient trop long ou bien qu’il fait plusieurs fois la même chose, on va utiliser ce qu’on appelle « fonctions », ces fonctions vont être des sortes de sous-programmes qui vont être appelées par votre main.
Par exemple si votre programme fait plusieurs fois une opération, vous pouvez la mettre dans votre fonction, et vous n’aurez plus qu’à appeler votre fonction pour réaliser l’opération.
Fonctionnement
Une fonction va recevoir des entrées, et renvoyer des sorties.
type_de_votre_sortie nomFonction(type_entree nom_variable_entree) { // Traitement de la variable entrée return var_sortie; }
Par exemple une fonction qui met au carré un nombre de type unsigned short (voir type de variable) :
Entrée : le nombre à mettre au carré de type unsigned short
Sortie : le nombre mis au carré de type unsigned long
unsigned long carre(unsigned short var_entree) { unsigned long var_sortie; var_sortie = var_entree * var_entree; return var_sortie; }
Et dans votre main par exemple si vous voulez afficher le carré de 5.
printf("%lu", carre(5));
Structure
Un type que vous ne connaissez pas mais que vous allez souvent utiliser dans l’utilisation des fonctions est le type void.
C’est le type que vous allez mettre à votre fonction si elle ne renvoie rien.
void heure() { printf("Heure : %hu",heure); }
Lorsque vous utilisez des fonctions vous devez les définir, comme quand vous définnissez vos variables. Il faudra donc pour cela mettre le prototype de la fonction avant le main.
type_de_votre_sortie nomFonction(type_entree nom_variable_entree);
Le prototype est la première ligne de votre fonction avec un point virgule à la fin.
Exemple
#include <stdio.h> #include <stdlib.h> unsigned long carre(unsigned short var_entree); //prototype void main() { printf("%lu", carre(5)); //Appel de la fonction return 0; } //Fonction unsigned long carre(unsigned short var_entree) { unsigned long var_sortie; var_sortie = var_entree * var_entree; return var_sortie; //Renvoie le nombre mis au carré }