Définition et utilisation de structures dans plusieurs fichiers sources

cs_bvincent84 Messages postés 2 Date d'inscription lundi 15 janvier 2007 Statut Membre Dernière intervention 18 août 2009 - 17 août 2009 à 15:06
cs_bvincent84 Messages postés 2 Date d'inscription lundi 15 janvier 2007 Statut Membre Dernière intervention 18 août 2009 - 18 août 2009 à 20:59
Bonjour à tous,

J'ai toujours du mal à utiliser les structures, en plus je voudrais les définir dans un .c et les utiliser aussi dans un autre (extern) mais je mélange un peu les noms de structures avec les noms de variables...

concrètement :
typedef struct	_TIME_STRUCT 
{
BYTE	sec;		
BYTE	min;		
BYTE	hr;		
BYTE	sem;		
BYTE	dd;		
BYTE	mm;		
BYTE	yy;		
} TIME_STRUCT;
static TIME_STRUCT RTC;
static TIME_STRUCT MAJ;


Dois-je mettre cela dans le main.c (ou .h) ou dans monRTC.c ça le fait aussi ?
Comment récupérer ma variable MAJ.sec dans un autre .c du projet ?
Comment faire la déclaration dans l'autre .c ?
extern TIME_STRUCT RTC;
ne reconnais pas la structure.
Par avance merci de vos explications simples.

Cordialement Benoit

2 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
17 août 2009 à 18:01
La définition de la structure se place dans un header.
Si tu veux partager des variables entre plusieurs modules, il faut les déclarer avec le mot-clé extern (ceci se met dans un header) MAIS il faut en plus les définir sans extern dans un module (peu importe lequel), pour que le compilateur sache où les stocker.
1
cs_bvincent84 Messages postés 2 Date d'inscription lundi 15 janvier 2007 Statut Membre Dernière intervention 18 août 2009
18 août 2009 à 20:59
Merci beaucoup juju,

En fait je confond un peu typedef struct et struct tout court.
Mais je suis parvenu à réaliser ce que je voulais.

Merci encore et bonne soirée.


Cordialement Benoit
0
Rejoignez-nous