extern, static et variables globales - C - Programmation
Marsh Posté le 23-01-2005 à 16:18:02
très mal
les variables globales, c'est dégueulasse et dangereux
Marsh Posté le 23-01-2005 à 16:22:24
ReplyMarsh Posté le 23-01-2005 à 16:24:06
bah tous les semaphores et files de messages sont en variables globales
Marsh Posté le 23-01-2005 à 16:30:29
on est obligés
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.
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 ...
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
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 : |
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 : |
Horrible!
http://mapage.noos.fr/emdel/notes.htm#globales
Marsh Posté le 23-01-2005 à 17:02:19
c'est le genre de liens que j'aurais bien aimé trouver
bon, j'ai du bol, tout est initialisé au même endroit
merci
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 ?