Externalisation structures [Résolu]

Signaler
Messages postés
21
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
8 janvier 2008
-
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
-
Bonjour,

Voila mon souci, je commence à avoir un peu trop de structures que j'utilise en global en me servant des extern....
comment est ce que je peux réduire mon nombre d'externalisation de structures..

Merci de vos conseils.

~(°:_:°)~

1 réponse

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
Puisque extern sert à utiliser une variable déjà allouée dans un module,
Il suffit d'externaliser la structure dans son propre header et de faire une fonction get qui la renvoi, et tous les modules qui inclueront ce header utiliseront la fonction get, même si elle est modifiée entre temps.

exemple :

// moduleA.h
typedef struct s1_tag { int i; } s1;
extern s1* pMaStruct;
inline s1* getMaStruct( return pMaStruct; )

// moduleA.cpp
s1* pMaStruct = (s1*)malloc(sizeof(s1));

// le module B utilise pMaStruct
#include "moduleA.h"
s1* pStructDansModuleB = getMaStruct();

// Le module C utilise pMaStruct
#include "moduleA.h"
s1* pStructDansModuleC = getMaStruct();