Autotools en C/Ajout d'une fonction
Nous partons du projet précédent. Voici une opération très courante lorsqu'on programme avec ces outils. Ajouter un fichier va vouloir dire : modifier le Makefile.am et créer les fichiers dans src/
Ajout d'une fonction
[modifier | modifier le wikicode]Ce titre signifie en fait, une fonction contenue dans un autre fichier que programme.c; par conséquent, notre projet s'enrichit d'un fichier...
/* fonction_affichage.c */
#include <stdio.h>
int affichage(char *phrase)
{
fprintf(stdin, "%s", phrase);
return 0;
}
... ou plutôt de deux. Il faut prendre l'habitude d'avoir les en-têtes dans un fichier séparé. Cela sera utile pour les tests par exemple et d'une manière générale c'est plus propre pour la réutilisation des fonctions.
/* entête fonction_affichage.h */
int affichage(char *phrase);
D'ailleurs pour être encore plus propre nous allons mettre ce qu'il faut pour empêcher les inclusions multiples.
/* entête fonction_affichage.h */
#ifndef FONCTION_AFFICHAGE_H
#define FONCTION_AFFICHAGE_H
int affichage(char *phrase);
#endif
Et le fichier principal modifié :
/* programme.c */
#include "fonction_affichage.h"
int main()
{
affichage("Bonjour\n");
return 0;
}
En résumé, nous avons deux nouveaux fichiers : fonction_affichage.c, fonction_affichage.h. En plus, nous avons modifié programme.c. Nous avons donc l'arborescence suivante :
affichage/
src/
programme.c
fonction_affichage.c
fonction_affichage.h
Il faut en informer le Makefile.am contenu dans src/
bin_PROGRAMS=affichage
affichage_SOURCE=programme.c fonction_affichage.c fonction_affichage.h
On peut relancer la compilation qui va mettre ces fichiers à jour :
$ make
Mémo
[modifier | modifier le wikicode]Il est courant d'oublier une étape voici un résumé quand on veut ajouter un fichier :
- créer le fichier.c
- créer le fichier.h
- ajouter ces fichiers dans le Makefile.am
- ajouter "fichier.h" au dessus de la fonction main dans le fichier principal du programme