Files
programmationc/fonctions.md
2026-01-09 13:08:35 +01:00

3.5 KiB
Raw Blame History

Les fonctions

En langage C, une fonction est un bloc de code nommé qui réalise une tâche précise. Les fonctions permettent de :

  • Découper un programme en parties plus simples
  • Réutiliser du code sans duplication
  • Rendre le code plus lisible et plus facile à maintenir
  • Faciliter les tests et le débogage

Tout programme C contient au minimum une fonction : main.


Structure générale dune fonction

Une fonction en C se compose de :

  1. Un type de retour
  2. Un nom
  3. Une liste de paramètres (éventuellement vide)
  4. Un corps, délimité par des accolades {}
type_retour nom_fonction(type1 param1, type2 param2)
{
    instructions;
    return valeur;
}

Exemple simple :

int addition(int a, int b)
{
    return a + b;
}

La fonction main

Le point dentrée dun programme C est la fonction main.

Exemple minimal :

#include <stdio.h>

int main(void)
{
    printf("Bonjour le monde !\n");
    return 0;
}
  • int : type de retour (code de sortie du programme)
  • return 0 : indique que le programme sest terminé correctement

Déclaration et définition dune fonction

Définition

La définition contient le code réel de la fonction.

int carre(int x)
{
    return x * x;
}

Déclaration (prototype)

La déclaration informe le compilateur de lexistence de la fonction.

int carre(int x);

Elle est généralement placée :

  • en haut du fichier
  • ou dans un fichier den-tête (.h)

Exemple complet

#include <stdio.h>

int carre(int x);

int main(void)
{
    printf("%d\n", carre(4));
    return 0;
}

int carre(int x)
{
    return x * x;
}

Les paramètres et arguments

  • Paramètres : variables définies en entrée de la fonction
  • Arguments : valeurs ou varaibles passées lors de lappel à la fonction
int multiplier(int a, int b)
{
    return a * b;
}

int resultat = multiplier(3, 5);

En C, les paramètres sont passés par valeur.

Passage par valeur

Lorsquune variable est passée à une fonction, une copie est utilisée.

void incrementer(int x)
{
    x = x + 1;
}

int main(void)
{
    int a = 5;
    incrementer(a);
    printf("%d\n", a); // affiche 5
}

La variable originale nest pas modifiée.

Fonctions sans paramètres et/ou sans retour

Sans paramètre

void afficher_message(void)
{
    printf("Bienvenue !\n");
}

Sans valeur de retour

Le type void indique quaucune valeur nest retournée.

void dire_bonjour(void)
{
    printf("Bonjour\n");
}

8. La directive return

  • Termine immédiatement lexécution de la fonction
  • Peut retourner une valeur (sauf pour void)
int signe(int x)
{
    if (x > 0)
        return 1;
    if (x < 0)
        return -1;
    return 0;
}

9. Bonnes pratiques

  • Donner des noms explicites aux fonctions
  • Une fonction = une responsabilité
  • Limiter la taille des fonctions
  • Déclarer les fonctions avant leur utilisation

Exercices

Exercice 1

Écrire une fonction max(int a, int b) qui retourne le plus grand des deux nombres.

Exercice 2

Écrire une fonction est_pair(int n) qui retourne 1 si le nombre est pair, 0 sinon.

Exercice 3

Écrire une fonction afficher_carre(int n) qui affiche les carrés des nombres de 1 à n.


À retenir

  • Une fonction est un bloc de code réutilisable
  • main est une fonction comme les autres
  • Les paramètres sont passés par valeur
  • void signifie "aucun"