Menu
CoddyTech

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 se contente de les utiliser. 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;
}

Remarque 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 n’a besoin d’inclure que 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 masque les détails de l’implémentation et te permet de modifier la logique des fonctions sans toucher aux fichiers qui les utilisent.

challenge icon

Défi

Facile

Créons un utilitaire mathématique simple en organisant ton code selon une structure appropriée en trois fichiers : un 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 des fonctions pour deux opérations : multiply et subtract. Les deux fonctions prennent deux entiers et renvoient un entier. N’oublie pas d’inclure des gardes d’inclusion à l’aide du symbole MATH_OPS_H.
  • math_ops.c : ton fichier source contenant les implémentations réelles de multiply et subtract. Ce fichier doit inclure son propre 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 fonction multiply doit renvoyer le produit de deux entiers, et subtract doit renvoyer le premier entier moins le second.

Tu recevras deux valeurs entières en entrée : a et b.

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

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

Par exemple, avec les valeurs d’entrée 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: Appeler la fonction multiply avec a et b, puis stocker le résultat
    
    // TODO: Appeler la fonction subtract avec a et b, puis stocker le résultat
    
    // TODO: Afficher les résultats au format suivant :
    // Produit : {résultat de multiply}
    // Différence : {résultat de 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