OVH Cloud OVH Cloud

définir des listes dans les en-têtes?

2 réponses
Avatar
drummy
Bonjour, je voudrais prédéfinir des listes de valeurs dans les en-têtes pour
qu'elles soient utilisables partout:
int AnneesVins[10]={1974,1978,1982,1988,1991,1992,1997,1999,2001,2003}
j'ai bien défini cette liste entre
#ifndef __VINS__
#define __VINS__
...
#endif
seulement j'ai un problème de link:
error LNK2005: "int * AnneesVins" (?AnneesVins.....) déjà défini(e) dans
vins.obj
quelle solution pour définir ce genre de listes sans avoir de pb de link?
merci
David

2 réponses

Avatar
Florent 'flure' C.
Le Thu, 05 Aug 2004 08:48:42 +0200, drummy a écrit :

Bonjour, je voudrais prédéfinir des listes de valeurs dans les en-têtes pour
qu'elles soient utilisables partout:
int AnneesVins[10]={1974,1978,1982,1988,1991,1992,1997,1999,2001,2003}
j'ai bien défini cette liste entre
#ifndef __VINS__
#define __VINS__
...
#endif
seulement j'ai un problème de link:
error LNK2005: "int * AnneesVins" (?AnneesVins.....) déjà défini(e) dans
vins.obj
quelle solution pour définir ce genre de listes sans avoir de pb de link?
merci
David


Dans vins.c :
int AnneesVins[] = {1974,1978,1982,1988,1991,1992,1997,1999,2001,2003};
const int NB_ANNEES_VINS = sizeof(AnneesVins);

Dans vins.h :
extern int AnneesVins[];
extern int NB_ANNEES_VINS;

je ne suis pas certain pour le NB_ANNEES_VINS, mais c'est déjà un
début; vérifie avec ton compilateur.

--
Florent "flure" C.
Décrypter l'@ pour répondre
Coders don't die, they just JMP without RET !

Avatar
spam
"drummy" wrote in message news:<4111d847$0$24057$...
Bonjour, je voudrais prédéfinir des listes de valeurs dans les en-têtes pour
qu'elles soient utilisables partout:
int AnneesVins[10]={1974,1978,1982,1988,1991,1992,1997,1999,2001,2003}


Tu utilises le mot clé extern :

vins.h :

extern int AnneeVins[10];

vins.cpp :

int AnneesVins[10]={1974,1978,1982,1988,1991,1992,1997,1999,2001,2003};

@+ Haypo