Une fonction est un bloc de code réutilisable qui exécute une tâche précise. Plutôt que de répéter les mêmes instructions plusieurs fois, on les regroupe dans une fonction, qu’on peut ensuite appeler à différents endroits du programme. Les fonctions permettent d’organiser le code, de le rendre plus lisible, plus court et plus facile à corriger.
À la fin de ce chapitre, tu sauras :
main) et les fonctions que tu crées.Une fonction en C suit une structure très précise :
type_de_retour nom_de_fonction(paramètres) {
// instructions
return valeur; // facultatif selon le type
}
int, float, char, void...).void).#include <stdio.h>
void direBonjour() {
printf("Bonjour à tous !\n");
}
int main() {
direBonjour(); // appel de la fonction
return 0;
}
💡 void signifie que la fonction ne renvoie rien.
Ici, direBonjour() est appelée depuis main() pour exécuter son code.
#include <stdio.h>
void afficherSomme(int a, int b) {
printf("Somme = %d\n", a + b);
}
int main() {
afficherSomme(5, 3);
return 0;
}
Ici, a et b sont des paramètres : la fonction les reçoit, calcule leur somme et l’affiche.
#include <stdio.h>
int carre(int nombre) {
return nombre * nombre;
}
int main() {
int resultat = carre(6);
printf("Le carré de 6 vaut %d\n", resultat);
return 0;
}
💡 Le mot-clé return renvoie la valeur calculée (36 ici) au programme principal.
mainEn C, une fonction doit être connue du compilateur avant d’être utilisée. Si tu écris la fonction après main(), tu dois la déclarer avant :
#include <stdio.h>
int carre(int nombre); // ← déclaration (prototype)
int main() {
printf("%d\n", carre(5));
return 0;
}
int carre(int nombre) { // ← définition
return nombre * nombre;
}
Le prototype indique simplement au compilateur :
“Il existe une fonction nommée
carrequi prend unintet renvoie unint.”
Je trouve qu'il est plus lisible de placer la fonction main en début de programme et les autres fonctions après la fonction main: on sait directement où commence notre programme. Dans ce cas, il faut penser à déclarer tes fonctions avant... mais c'est un tout petit prix à payer...
Tu peux évidemment écrire plusieurs fonctions dans le même programme :
#include <stdio.h>
void afficherMessage() {
printf("Programme de calcul\n");
}
int somme(int a, int b) {
return a + b;
}
int main() {
afficherMessage();
printf("Résultat : %d\n", somme(4, 7));
return 0;
}
return renvoie un résultat à celui qui a appelé la fonction.void → pas de valeur renvoyée.main().