web-dev-qa-db-fra.com

Comment diviser un programme C en plusieurs fichiers?

Je veux écrire mes fonctions C dans 2 fichiers .c séparés et utiliser mes IDE (Code :: Blocks) pour tout compiler ensemble.

Comment configurer cela dans Code :: Blocks?

Comment appeler des fonctions dans un .c fichier depuis l'autre fichier?

38
amin

En général, vous devez définir les fonctions dans les deux fichiers .c Distincts (par exemple, A.c Et B.c), Et placer leurs prototypes dans les en-têtes correspondants (A.h, B.h, N'oubliez pas les inclure les gardes ).

Chaque fois que dans un fichier .c Vous devez utiliser les fonctions définies dans un autre .c, Vous aurez #include L'en-tête correspondant; alors vous pourrez utiliser les fonctions normalement.

Tous les fichiers .c Et .h Doivent être ajoutés à votre projet; si le IDE vous demande s'ils doivent être compilés, vous ne devez marquer que le .c pour la compilation.

Exemple rapide:

Functions.h

#ifndef FUNCTIONS_H_INCLUDED
#define FUNCTIONS_H_INCLUDED
/* ^^ these are the include guards */

/* Prototypes for the functions */
/* Sums two ints */
int Sum(int a, int b);

#endif

Functions.c

/* In general it's good to include also the header of the current .c,
   to avoid repeating the prototypes */
#include "Functions.h"

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

Main.c

#include <stdio.h>
/* To use the functions defined in Functions.c I need to #include Functions.h */
#include "Functions.h"

int main(void)
{
    int a, b;
    printf("Insert two numbers: ");
    if(scanf("%d %d", &a, &b)!=2)
    {
        fputs("Invalid input", stderr);
        return 1;
    }
    printf("%d + %d = %d", a, b, Sum(a, b));
    return 0;
}
106
Matteo Italia