[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-team] OT? initializing of automatic aggregate
#include <stdio.h>
#include <stdlib.h>
int main()
{
char brol[10] = "Hello";
printf("%s\n", brol);
return 0;
}
Ce bout de code compile au poil sous Linux, sous AIX, pareil. Seulement sur
un Pyramid (SVR4), j'obtiens un warning "Initializing of automatic aggregate".
Vous me direz qu'un warning ce n'est pas grave et que le programme tourne
quand meme mais j'aimerais bien comprendre. Il semblerait selon mes
recherches que certains SunOS font la meme erreur a cause d'une discussion
sur les aggregates dans la norme ANSI...
Solutions pour killer le warning:
- Fermer les yeux
- Declarer la variable en static
- Declarer la variable en global
Avec une fonction recursive, je suis marron...
Donc, qqn peut-il m'expliquer ce qu'est un "automatic aggregate" ?
Pourquoi ca pose probleme sur ce systeme ?
J'emets une theorie issue de mes recherches profondes:
"Une variable globale ou statique est remplie au load du segment data par
l'OS hors de l'executable. => 0 code.
Dans le cas d'une variable locale, cette variable est empilee a chaque
appel de la fonction par le programme lui-meme. Donc, il faut generer du
code pour assigner "Hello" a brol a l'appel."
Y a-t-il des experts du C ANSI dans la salle ?
Eric.
---------
Visit the Linux Supertore Online: http://www.redcorp.com !
If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.
Archive of the list: http://tania.be.linux.org/