74Fermer76
PolluxLe 15/02/2007 à 22:18
du calme grin
tama (./73) :
ça donne ça :#include <tigcclib.h> void _main(void) {   int cs[]={1000,999,999,..............,0} // il y a 90 éléments }

ah d'accord tu l'as déclarée à l'intérieur d'une fonction ^^ le truc c'est que quand tu déclares comme ça, ça génère exactement le même code que si tu écrivais :
void _main() {
  int cs[90]; // déclaration sur la pile
  cs[0] = 1000, cs[1] = 999, cs[2] = 999, ..., cs[89] = 0;
}
donc en fait le compilo doit générer beaucoup beaucoup de code... par contre si tu écris à la place "static int cs[] = ..." il ne génère aucun code, il inclut juste la table des cosinus dans le programme smile (comme si tu avais déclaré ta table en dehors de toute fonction, en fait)

bon cela dit j'ai corrigé le compilo pour que ça n'arrive plus (ou moins facilement, en tout cas) dans les prochaines versions : le crash est un débordement de pile qui vient du fait que pour parcourir une liste d'instructions séparées par des virgules il faut que la fonction de génération de code se rappelle récursivement, donc j'ai modifié la fonction pour diviser par 10 sa consommation sur la pile happy