[C à l'ancienne] variable globale constante

variable globale constante [C à l'ancienne] - Programmation

Marsh Posté le 16-10-2001 à 14:53:54    

G besoin d'une variable globale constante, et j'arrive pas à faire marcher ça. Voila, la syntaxe que j'utilise:
 
- Un fichier global.h qui contient:
 
// Position et dimensions de la fenêtre principale
extern const long lgXPos;
extern const long lgYPos;
 
- Un fichier clip.c qui contient:
 
// Position et dimensions de la fenêtre principale
const long lgXPos = 10;
const long lgYPos = 10;
 
- Et quand, dans other.c, j'utilise une variable globale, il y a un message syle unresolved external error sur ma variable.
 
Comment je peux faire ?

Reply

Marsh Posté le 16-10-2001 à 14:53:54   

Reply

Marsh Posté le 16-10-2001 à 14:56:23    

Tu es la sur une difference C/C++
 
ce que tu ecris est correct en C pas en C++
pour que ce soit correct en C++ enleve le const...
 
les const globaux sont toujours locaux en C++ (global au fichier)

Reply

Marsh Posté le 16-10-2001 à 14:58:12    

ça veux dire que j'peux pas mettre ces variables globales en const !? c un peu chiant (et bisard) ça !

Reply

Marsh Posté le 16-10-2001 à 15:08:44    

Tu peux mais en C++ elles sont consideres commes des #define, ou presque...
 
Par contre je peut te donner ma methode...
 
class IS_PhysicalConst
{
static const c; //light speed
};
 
PhysicalConst::c=3e8; etc...
 
:D

Reply

Marsh Posté le 16-10-2001 à 16:10:18    

mais en fait, je fais ça hors d'une classe... donc en fait, c'est du c du coup; ça devrait marcher, non !?

Reply

Marsh Posté le 16-10-2001 à 16:15:12    

El_Gringo a écrit a écrit :

mais en fait, je fais ça hors d'une classe... donc en fait, c'est du c du coup; ça devrait marcher, non !?  




non... si c'etait vraiment du C sa marcherais, mais si tu compile ca en C++ ca ne marchera pas...
 
Dans mon exemple la classe ne sert a rien, elle n'est jamais instanciee...
Enfin elle ne sert a rien elle permet d'encapsuler les variables.
ou plutot les constantes...
 
mais sinon tu mets ca dans un .h que tu inclus dans tes fichiers...  comme si tu avais fais des #define...

Reply

Marsh Posté le 16-10-2001 à 16:54:32    

j'fais voir c'que j'fait, merci ! :jap:

Reply

Marsh Posté le 16-10-2001 à 17:02:46    

BENB a écrit a écrit :

Tu peux mais en C++ elles sont consideres commes des #define, ou presque...  
 
Par contre je peut te donner ma methode...  
 
class IS_PhysicalConst  
{  
static const c; //light speed  
};  
 
PhysicalConst::c=3e8; etc...  
 
:D  




 
ah ben merde, j'ai déjà vu ça écrit. je croyais que c'était des namespaces...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed