Menu
Coddy logo textTech

Fichiers sources

Fait partie de la section Object Oriented Programming du Journey C de Coddy. Leçon 3 sur 61.

Jusqu’à présent, nous avons placé les déclarations de function dans des fichiers d’en-tête, mais le code réel de la function (la définition) se trouvait dans le fichier main. L’étape suivante de la programmation modulaire consiste à déplacer ces définitions dans leurs propres fichiers source (fichiers .c).

Cela crée une structure claire en trois parties : le header déclare les fonctions, un fichier source distinct les définit, et main les utilise simplement. Voici à quoi cela ressemble :

// math_utils.h
#ifndef MATH_UTILS_H
#define MATH_UTILS_H

int add(int a, int b);

#endif
// math_utils.c
#include "math_utils.h"

int add(int a, int b) {
    return a + b;
}
// main.c
#include <stdio.h>
#include "math_utils.h"

int main() {
    printf("%d\n", add(5, 3));
    return 0;
}

Notez que math_utils.c inclut son propre header. Cela garantit que la définition de la function correspond à la déclaration ; si elles ne correspondent pas, le compilateur détectera l’erreur. Le fichier main doit seulement inclure le header pour utiliser la function ; il n’a pas besoin de savoir comment add fonctionne en interne.

Cette séparation maintient les détails d’implémentation masqués et vous permet de modifier la logique des fonctions sans toucher aux fichiers qui utilisent ces fonctions.

challenge icon

Défi

Facile

Construisons un utilitaire mathématique simple en organisant ton code selon une structure appropriée en trois fichiers : un fichier d’en-tête pour les déclarations, un fichier source pour les implémentations et un fichier principal qui les utilise.

Tu vas créer trois fichiers :

  • math_ops.h : ton fichier d’en-tête contenant les déclarations de function pour deux opérations : multiply et subtract. Les deux fonctions prennent two entiers et renvoient un entier. N’oublie pas d’utiliser des guards avec le symbole MATH_OPS_H.
  • math_ops.c : ton fichier source contenant les implémentations réelles de multiply et subtract. Ce fichier devrait include son propre fichier d’en-tête afin de garantir que les déclarations correspondent aux définitions.
  • main.c : ton fichier principal qui inclut l’en-tête et utilise les deux fonctions pour effectuer des calculs.

La function multiply doit renvoyer le product de two entiers, et subtract doit renvoyer le first entier moins le second.

Tu recevras two entrées de type integer : a et b.

Dans ta fonction main, affiche les results des deux opérations sur des lignes séparées :

Product: {result of multiply}
Difference: {result of subtract}

Par exemple, avec les entrées 8 et 3, la sortie serait :

Product: 24
Difference: 5

Essayez vous-même

#include <stdio.h>
#include "math_ops.h"

int main() {
    int a, b;
    scanf("%d", &a);
    scanf("%d", &b);
    
    // TODO: Appelez la fonction multiply avec a et b, stockez le résultat
    
    // TODO: Appelez la fonction subtract avec a et b, stockez le résultat
    
    // TODO: Affichez les résultats au format :
    // Produit : {result of multiply}
    // Différence : {result of subtract}
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Object Oriented Programming

Entraînez-vous par vous-même : Compilateur C en ligne