Pb de déclaration multiple de variables

Résolu
skirby Messages postés 96 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 26 juillet 2007 - 30 janv. 2006 à 23:01
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 31 janv. 2006 à 16:08
Bonjour,

J'ai un problème que je n'arrive pas à résoudre. Je dirais même que cela fait une éternité que je n'arrive pas à me servir correctement des includes.
je compte sur votre aide pour comprendre; je l'espère une bonne fois pour toute; comment m'en servir correctement.

Voici un exemple de code :
Main.h
#ifndef mainH
#define mainH

// Déclaration des variables globales
int i;

#endif

Main.cpp

#include "main.h"

#include "test.h"

using namespace std;

int main(int argc, char *argv[])

{

i = 10;

test();

system("PAUSE");

return EXIT_SUCCESS;

}

Test.h
#include <cstdlib>
#include
#include <stdio.h>

#include "main.h"

void test(void);

Test.cpp
#include "test.h"

void test(void) {
printf("Appel de la fonction test => i = %d\n", i);
}

A la compilation, j'ai le message suivant :
multiple definition of `i'

Compte tenu du code cela parait évident puisque j'inclu deux fois le fichier main.h
Donc ma question est la suivante :
Comment procède t'on quand on fait un programme modulaire (avec un fichier .cpp et .h par module) et que les modules doivent accéder à des variables et / ou fonctions contenus dans d'autres modules ?

Ai-je été clair ?

Merci d'avance pour vos réponse.

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 janv. 2006 à 23:12
ENCORE....

dans 1 seul cpp:
int n;

dans autres cpp qui s'en serviront ou dans 1 seul h:
extern int n;

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
skirby Messages postés 96 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 26 juillet 2007
31 janv. 2006 à 15:35
Salut BruNews,

Le "encore" en majuscule signifie que cette question est souvent posée ?
Si c'est le cas, désolé. Pourtant j'avais fais une recherche sur le forum avant de poster.

En tout cas merci du tuyau. Je crois que j'ai réussi à faire ce que je voulais avec tes conseils.

A+
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 janv. 2006 à 16:08
Oui c'est récurrent comme demande mais j'avoue que ce n'est peut-être pas évident à retrouver dans le forum.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Rejoignez-nous