extern, static et variables globales

extern, static et variables globales - C - Programmation

Marsh Posté le 23-01-2005 à 16:13:29    

Voila le probleme, c'est plus une question de propreté puisque ca marche :
 
j'ai un .h avec toutes les définition de variables globales, agrémentées d'un static
 
dans chaque .c qui utilisent ces variables gloables, je déclarent celles-ci avec un extern.
 
c'est mal ?
 

Reply

Marsh Posté le 23-01-2005 à 16:13:29   

Reply

Marsh Posté le 23-01-2005 à 16:18:02    

très mal
les variables globales, c'est dégueulasse et dangereux


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-01-2005 à 16:18:29    

a ca, je suis obligé, c'est pour tourner sur du vxWorks :/

Reply

Marsh Posté le 23-01-2005 à 16:22:24    

xav14 a écrit :

a ca, je suis obligé, c'est pour tourner sur du vxWorks :/


 
et ...

Reply

Marsh Posté le 23-01-2005 à 16:24:06    

bah tous les semaphores et files de messages sont en variables globales [:spamafote]

Reply

Marsh Posté le 23-01-2005 à 16:27:07    

quel est l'intéret de les mettre en global ?

Reply

Marsh Posté le 23-01-2005 à 16:30:29    

on est obligés [:spamafote]
 
je sais pas si t'as déjà fais du vxWorks, mais c'est un peu zarb, parce qu'en fait chaque fonction est une tache.
 
genre, toutes les fonctions sont dans une branche d'un fork. et forcément si on veut faire communiquer les differents processus, on passe par des variables communes. La, en l'occurence ce sont des variables globales d'un point de vue C.

Reply

Marsh Posté le 23-01-2005 à 16:39:32    

je ne connais pas vxWorks,
Mais habituellement, les variables globales sont utiles pour la communication entre threads, puisqu'ils partagent le segment data.
Les ipc sys V (semaphores, files de messages, memoire partagée) permettent de communiquer par d'autres moyens puisque les processus sont enfermés dans leurs espaces d'adressage. Alors etre contraint de mettre en global un IPC, ça me parait bizarre bizarre ...
Il y a peut-etre une spécificité de vxWorks que j'ignore ...

Reply

Marsh Posté le 23-01-2005 à 16:46:54    

scomme ca qu'on nous dit de faire, c'est comme ça qu'on fait (projet à la con powered)
 
et ce sont pas des ipc posix qu'on fait ;)
 
m'enfin ca répond pas a la question :o


Message édité par xav14 le 23-01-2005 à 16:47:16
Reply

Marsh Posté le 23-01-2005 à 16:52:28    

xav14 a écrit :

Voila le probleme, c'est plus une question de propreté puisque ca marche :
 
j'ai un .h avec toutes les définition de variables globales, agrémentées d'un static


Eeek! Pas de définitions d'objet dans un header. Jamais. Pour ce qui est des fonctions, seules les fonctions inline [C99] sont permises.
 
http://mapage.noos.fr/emdel/codage [...] ser_source
http://mapage.noos.fr/emdel/codage.htm#organiser

Citation :


dans chaque .c qui utilisent ces variables gloables, je déclarent celles-ci avec un extern.
 
c'est mal ?


Horrible!
 
http://mapage.noos.fr/emdel/notes.htm#globales


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 23-01-2005 à 16:52:28   

Reply

Marsh Posté le 23-01-2005 à 17:02:19    

c'est le genre de liens que j'aurais bien aimé trouver :o
 
bon, j'ai du bol, tout est initialisé au même endroit :o
 
:jap: merci

Reply

Sujets relatifs:

Leave a Replay

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