B.1 Compilation séparée
Principes élémentaires de programmation modulaire
Parmi les règles communément admises de codage, on peut citer :
-
l'abstraction des constantes littérales (utilisation du
#define pour utiliser des constantes) ;
- la fragmentation de code afin, par exemple, d'améliorer sa
maintenance ;
- la factorisation du code permettant d'écrire des fonctions
utilisables par plusieurs programmes différents.
Supposons que l'on souhaite produire un exécutable à partir de
deux fichier. On considère le premier fichier foo.c
#include <stdio.h>
int main(void){
int op1, op2 ;
printf("Entrez le premier entier ") ;
scanf("%d",&op1) ;
printf("Entrez le second entier ") ;
scanf("%d",&op2) ;
printf("Le plus grand est %d\n", plusgrand(op1,op2)) ;
return 0 ;
}
en conjonction avec le fichier bar.c
int plusgrand(int arg1, int arg2){
return arg1<arg2 ? arg2 : arg1 ;
}
et l'on désire obtenir un exécutable. Il faut tout d'abord
construire deux fichiers objets :
gcc -c foo.c
gcc -c bar.c
et ensuite compiler un exécutable :
gcc foo.o bar.o
Variable partagée
Lorsqu'il est inévitable d'utiliser une variable commune à
plusieurs fichiers source, on doit indiquer au compilateur que deux
variables portant le même nom mais déclarées dans des fichiers
différents correspondent au même objet. Pour ce faire, on peut
définir la variable var dans le fichier foo.c :
type var ;
et y faire référence dans le fichier bar.c comme suit :
extern type var ;
Pour tout commentaire : Alexandre Sedoglavic.