1

Je complie le source suivant sous ansi2knr: /*(les librairies commonh et chaineh sont deja compilees avec ansi to knr)*/ #include "commonh" #include "chaineh" void main(void) {  short orig[5]={2,7,8,0,9}; }  

et CC me renvoie 2 erreurs sur la ligne 6:"illegal initialisation" et du martien(Vous avez vu MULDER?).
Quelqu'un peut m'aider?
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

2

il me semble que les initialisations de ce type ne sont premises que pour les variables globales
avatar

3

Bon ben...Allons y pour les varaibles globales.(Je deteste ce qui est statique)
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

4

ansi2knr ne gère pas toutes ces différences-là.

unknown@K /e/TI-89/Compilers/tigcc/Projects
$ cat test4.c
void main(void)
{
 short orig[5]={2,7,8,0,9};
}


unknown@K /e/TI-89/Compilers/tigcc/Projects
$ tigcc -S -Wtraditional test4.c
test4.c: In function `main':
test4.c:2: warning: traditional C rejects ISO C style function definitions
[b]test4.c:3: warning: traditional C rejects automatic aggregate initialization[/b]
test4.c:2: warning: return type of `main' is not `int'

Le problème "traditional C rejects ISO C style function definitions" est géré par ansi2knr, mais pas "traditional C rejects automatic aggregate initialization".
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

N'oublies pas que je suis un debutant!
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

6

Bon, j'explique:
"traditional C rejects automatic aggregate initialization"
ça veut dire que tu ne peux pas initialiser un "aggregate" (tableau, structure, union) qui est "automatique", c'est-à-dire ni global, ni statique. Tu dois faire toi-même ce qu'un compilateur ANSI fait en interne:
void main(void)
{
 static short orig_init[5]={2,7,8,0,9};
 short orig[5];
 memcpy(orig,orig_init,5);
}
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

Meme prgm,rejoues encore...
#include "commonh" #include "chaineh" short orig[5]={2,7,8,0,9}; void main(void) {  char msg[20],titre[20],i;  short dest[5];  memcpy((void*)dest,(void*)orig,(unsigned long) 5*sizeof(short));  for(i=0;i<5;i++)  {    sprintf(msg,"%d",dest[i]);    sprintf(titre,"dest[%d]",i);  } } --->ligne 10:2 warning et je n'obtiens plus de nouveau prgm.Vous pouvez m'aider?  
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

8

Kevin Kofler a écrit :
Bon, j'explique:
"traditional C rejects automatic aggregate initialization"
ça veut dire que tu ne peux pas initialiser un "aggregate" (tableau, structure, union) qui est "automatique", c'est-à-dire ni global, ni statique. Tu dois faire toi-même ce qu'un compilateur ANSI fait en interne:
void main(void)
{
 static short orig_init[5]={2,7,8,0,9};
 short orig[5];
 memcpy(orig,orig_init,5);
}



Dommage,alors,moi qui suit paresseux...
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

9

Essaye:
memcpy(dest,orig,10ul);
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

10

Non,toujours pas.J'obiteins 2 erreurs en ligne 10
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!