globale et static du même nom

globale et static du même nom - C - Programmation

Marsh Posté le 14-02-2007 à 16:05:09    

Que dit le standard dans le cas ou j'ai une variable globale "myglob" définie dans un fichier A, une variable globale static du même nom définie dans un fichier B, et que je link les deux ? Est-ce que le linker est sensé me jeter, est-ce que la version static dans le fichier B est sensée masquer la version globale du fichier A, ou est-ce qu'il doit s'arranger pour que myglob dans le fichier B et myglob dans le fichier A désignent la même variable ? D'après ce que j'ai pu voir avec xlc (sous AIX), des versions différentes du compilos font des choses différentes (et une des version me semble buggée).

Reply

Marsh Posté le 14-02-2007 à 16:05:09   

Reply

Marsh Posté le 14-02-2007 à 16:18:46    

En fait y'a pas de bug et le deux versions du compilo font la même chose (a savoir que "myblog" désigne la même variable dans les deux fichiers, même si elle est déclarée static d'un côté).


Message édité par matafan le 14-02-2007 à 16:18:56
Reply

Marsh Posté le 15-02-2007 à 01:24:43    

???
 
t'es sur que ton compilo ne fait des pas saloperies à la mode de l'ancien temps, à savoir merger toutes les variables ? y a peut etre un flag pour désactiver ça ?

Reply

Marsh Posté le 16-02-2007 à 22:55:21    

matafan a écrit :

Que dit le standard dans le cas ou j'ai une variable globale "myglob" définie dans un fichier A, une variable globale static du même nom définie dans un fichier B, et que je link les deux ?


Comportement indéfini.

 

Message cité 1 fois
Message édité par Emmanuel Delahaye le 16-02-2007 à 22:55:52

---------------
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 17-02-2007 à 13:17:00    

Emmanuel Delahaye a écrit :

Comportement indéfini.


C'est un truc que j'ai jamais testé mais à vue de nez, j'aurais parié que le compilo allait me jeter un truc style "duplicate object" à la figure ???


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

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