Bonjour,
si dans un fichier on défini
char Variable;
et dans un autre fichier on utilise
extern int Variable;
pour l'instant avec gcc je n'ai pas d'erreur ni de warning
comme faire pour éviter ce genre de bug au link ?
sauf cas extrêmement rares, tu ne devrais pas avoir de globales.
Même si ce sont des const ?
Ok pour les const...
-- C is a sharp tool
Harpo
Antoine Leca wrote:
surtout celles qui génèrent un symbole extern (non static).
(Euh, je ne suis pas sûr que les théoriciens qui crient "mort aux globales" fassent des exceptions pour les static.)
Il y a même des extrémistes fondamentalistes qui veulent éradiquer les variables.
Le Message-id s'obtient dans Google Groups en regardant le message en format original (?dmode=source) </USENET>
rassure-toi, je me souvenais du message-id...
(...)
Euh, si en passant en C++ il m'oblige à rajouter des transtypages à mon sens inutiles, moi j'abandonne avant...
J'ai abandonné peu après. J'ai eu surtout des problèmes pour me linker dynamiquement (pendant l'exécution) à des modules écrits en C++ car le compilo C++ bidouille (mangle) les symboles extern.
-- http://harpo.free.fr/
Antoine Leca wrote:
surtout celles qui génèrent un symbole extern (non static).
(Euh, je ne suis pas sûr que les théoriciens qui crient "mort aux
globales" fassent des exceptions pour les static.)
Il y a même des extrémistes fondamentalistes qui veulent éradiquer les
variables.
Le Message-id s'obtient dans Google Groups en regardant le message en
format original (?dmode=source)
</USENET>
rassure-toi, je me souvenais du message-id...
(...)
Euh, si en passant en C++ il m'oblige à rajouter des transtypages à
mon sens inutiles, moi j'abandonne avant...
J'ai abandonné peu après.
J'ai eu surtout des problèmes pour me linker dynamiquement (pendant
l'exécution) à des modules écrits en C++ car le compilo C++ bidouille
(mangle) les symboles extern.
surtout celles qui génèrent un symbole extern (non static).
(Euh, je ne suis pas sûr que les théoriciens qui crient "mort aux globales" fassent des exceptions pour les static.)
Il y a même des extrémistes fondamentalistes qui veulent éradiquer les variables.
Le Message-id s'obtient dans Google Groups en regardant le message en format original (?dmode=source) </USENET>
rassure-toi, je me souvenais du message-id...
(...)
Euh, si en passant en C++ il m'oblige à rajouter des transtypages à mon sens inutiles, moi j'abandonne avant...
J'ai abandonné peu après. J'ai eu surtout des problèmes pour me linker dynamiquement (pendant l'exécution) à des modules écrits en C++ car le compilo C++ bidouille (mangle) les symboles extern.
-- http://harpo.free.fr/
TERENCE
Ensuite, il faut que les déclarations (dans le xxx.h) soit de la forme GLOBALE char c; avec préalablement #define GLOBALE extern dans un entête normalement #inclus.
ARG ! J'ai proposé il n'y a pas longtemps quelque chose de ce genre en simplifié, ça ne passe pas, Emdel trouve cela 'horrible et inutile' ;-)
Les variables globales sont ces moulins ... tu ne pouvais plus mal tombé.
Ensuite, il faut que les déclarations (dans le xxx.h) soit de la forme
GLOBALE char c;
avec préalablement
#define GLOBALE extern
dans un entête normalement #inclus.
ARG !
J'ai proposé il n'y a pas longtemps quelque chose de ce genre en
simplifié, ça ne passe pas, Emdel trouve cela 'horrible et inutile' ;-)
Les variables globales sont ces moulins ... tu ne pouvais plus mal tombé.
Ensuite, il faut que les déclarations (dans le xxx.h) soit de la forme GLOBALE char c; avec préalablement #define GLOBALE extern dans un entête normalement #inclus.
ARG ! J'ai proposé il n'y a pas longtemps quelque chose de ce genre en simplifié, ça ne passe pas, Emdel trouve cela 'horrible et inutile' ;-)
Les variables globales sont ces moulins ... tu ne pouvais plus mal tombé.