Bonjour,
voilà mon problème :
J'ai actuellement une constante defini dans un .h
Cette constante est utilisée dans une dizaine de fichiers.
Actuellement, je voudrais faire varier la valeur de cet "élément" au cours de mon process mais sans impacter les fichiers qui l'utilisent.
Du coup, je n'utilise plus de constante (normal!!)
J'ai décidé d'utiliser une variable externe du même nom que je déclare dans le même .h (pour que les .c utilisant auparavant la constante ne voient pas la différence) et j'initialise ma constante dans un fichier d'init pré-existant.
toto.h
extern int MY_INDEX;
init.c
int MY_INDEX = 0;
Lorsque je compile tout mon projet, l'erreur "undefined reference to MY_INDEX" apparait pour les fichiers qui utilisaient l'ancienne constante MY_INDEX.
A noter que toto.h est un .h contenant des définitions d'objets et n'a donc pas de .c associé.
Je sais qu'en rajoutant le type devant le nom de la variable, cela devrait compiler mais mon objectif est de ne pas modifier les autres fichiers l'utilisant
Y-a t-il une façon de faire cela ?
Peut etre que je ne dois pas utiliser de variable externe ?
Merci d'avance
Kanonji
PS: pour info, j'ai essayé la pirouette suivante:
toto.h
#define MY_INDEX (int TEMP_INDEX)
extern int TEMP_INDEX;
init.c
int TEMP_INDEX=0;
autre.c
int TEMP_INDEX=i;
mais j'ai quand même le problème de compilation.
Partager