Salut à tous, alors voila je me suis remis au C depuis peu et je m'intéresse actuellement à la programmation modulaire.
J'ai réalisé un petit programme qui compilait et marchait parfaitement, et j'ai voulu décomposer celui-ci en 4 fichiers (main.c, main.h, fichier.c, fichier.h) afin d'expérimenter le truc.
Voici un aperçu du contenu de mes 4 fichiers :
main.c :
- include "main.h"
+ fonction main
main.h :
- include LIB
- include "fichier.c"
fichier.c :
- include fichier.h
+ corps de toutes mes fonctions
fichier.h :
prototypes de toutes mes fonctions
J'ai également ajouté les directives de pré-processeur qui permettent de ne pas avoir plusieurs inclusions du même fichier. ("ifndef...")
Tous ces fichiers se trouvent dans le même répertoire, et pourtant, avec Dev C++ comme avec Code::Blocks, le compilateur trouve des définitions multiples de mes fonctions.
J'ai testé pas mal de trucs, mais rien n'y faisait, jusqu'au moment ou j'ai décidé d'enlever tous les #includes (hormis les libs), et la, miracle ça marche, sous Dev C++, comme sous Code::Blocks !
Alors, si quelqu'un pouvait m'expliquer pourquoi ? Ces deux compilateurs ajoutent-ils directement les lignes lorsqu'on inclut les fichiers ans un projet ? Ai-je fait n'importe quoi ? Bref, merci de m'éclairer sur le sujet.