🔧 Fonctions en C

Modularité et réutilisabilité du code

🎯 Définitions

🔧 Qu'est-ce qu'une Fonction ?
Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique. Elle permet de découper le code en petits morceaux logiques et d'éviter les répétitions. En C, le programme commence toujours par la fonction main.
⚙️
Fonction
Bloc de code avec un nom, un type de retour et des paramètres.
📥
Paramètres
Variables que l'on donne à la fonction pour qu'elle travaille (les ingrédients).
📤
Type de Retour
Type de la donnée renvoyée par la fonction (int, double, char...). Si elle ne renvoie rien, c'est void.
📋 Structure d'une Fonction en C
type_retour nom_de_fonction(type_1 param_1, type_2 param_2) {
    // Corps de la fonction
    // Instructions...

    return resultat; // Si type_retour n'est pas void
}
💻 Exemples de Fonctions
#include <stdio.h>

// Fonction qui convertit Celsius en Fahrenheit
// Elle prend un entier et renvoie un nombre réel (float)
float celsius_vers_fahrenheit(int temp_celsius) {
    float temp_fahrenheit = (temp_celsius * 1.8) + 32;
    return temp_fahrenheit;
}

// Fonction qui affiche un message (ne renvoie rien -> void)
void afficher_bonjour() {
    printf("Bonjour tout le monde !\n");
}

int main() {
    float f = celsius_vers_fahrenheit(25);
    printf("25 degres Celsius = %.2f Fahrenheit\n", f);

    afficher_bonjour();

    return 0;
}

🔍 Anatomie d'une Fonction

🏷️
Type de retour
Indique ce que la fonction va "rendre". int pour un entier, void si elle ne rend rien.
📛
Nom
Le nom pour appeler la fonction (ex: calculer_aire). Pas d'espaces !
📥
Arguments
Entre parenthèses, les variables nécessaires (ex: int largeur).
⚙️
Corps
Entre accolades { }, c'est le code qui s'exécute.
📤
Return
L'instruction return arrête la fonction et renvoie le résultat.
⚠️ Attention : Si vous déclarez une fonction avec un type de retour (ex: int), vous DEVEZ utiliser return avec une valeur de ce type à la fin.

🌍 Variables Locales et Globales

📍 Portée des Variables
La portée est la zone du code où une variable existe.
🏠
Variable Locale
Déclarée dans une fonction. Elle n'existe que pendant l'exécution de cette fonction. Elle est détruite après.
🌐
Variable Globale
Déclarée en dehors des fonctions (souvent tout en haut). Elle est accessible partout.
🏠 Exemple : Variable Locale
void ma_fonction() {
    int locale = 10; // Existe uniquement ici
    printf("%d\n", locale);
}

int main() {
    // printf("%d", locale); // ❌ Erreur : 'locale' n'existe pas ici
    ma_fonction();
    return 0;
}
🔧 Conseil : Évitez les variables globales autant que possible. Elles rendent le code difficile à comprendre et à déboguer. Privilégiez les variables locales et les paramètres.

💡 Bonnes Pratiques

📝
Nommage
Utilisez des verbes pour les actions (ex: calculer_somme, afficher_menu).
🎯
Responsabilité
Une fonction = Une tâche. Si elle fait trop de choses, découpez-la.
✅ Exemple propre
// Fonction simple et claire
int calculer_aire(int longueur, int largeur) {
    return longueur * largeur;
}

int main() {
    int aire = calculer_aire(10, 5);
    printf("Aire : %d\n", aire);
    return 0;
}