globale et static du même nom - C - Programmation
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é).
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 ?
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.
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 ???
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).