Menu
Coddy logo textTech

Fichiers sources

Fait partie de la section Programmation Orientée Objet du Journey C de Coddy. Leçon 3 sur 61.

Jusqu'à présent, nous avons placé les déclarations de fonctions dans des fichiers d'en-tête, mais le code réel des fonctions (la définition) se trouvait dans le fichier principal. 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 : l’en-tête 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 fichier d’en-tête. Cela garantit que la définition de la fonction correspond à la déclaration ; si elles ne correspondent pas, le compilateur détectera l’erreur. Le fichier principal doit seulement inclure le fichier d’en-tête pour utiliser la fonction ; 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 votre code selon la 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.

Vous allez créer trois fichiers :

  • math_ops.h : votre fichier d’en-tête contenant les déclarations de fonctions pour deux opérations : multiply et subtract. Les deux fonctions prennent deux entiers et renvoient un entier. N’oubliez pas d’inclure des gardes d’inclusion utilisant le symbole MATH_OPS_H.
  • math_ops.c : votre fichier source contenant les implémentations effectives de multiply et subtract. Ce fichier doit inclure son propre fichier d’en-tête afin de garantir que les déclarations correspondent aux définitions.
  • main.c : votre fichier principal qui inclut l’en-tête et utilise les deux fonctions pour effectuer des calculs.

La fonction multiply doit renvoyer le produit de deux entiers, et subtract doit renvoyer le premier entier moins le second.

Vous recevrez deux entrées entières : a et b.

Dans votre fonction principale, affichez les résultats des deux opérations sur des lignes distinctes :

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 Programmation Orientée Objet

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