#1 Le 22/02/2013, à 18:52
- Kail
Bug Compilation en C avec boucle FOR dans le terminal
Bonsoir,
Je suis très pressé je dois y aller, je vous laisse le message d'erreur, si vous avez l'amabilité de me donner une réponse
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld a retourné 1 code d'état d'exécution
Hors ligne
#2 Le 22/02/2013, à 19:04
- compte supprimé
Re : Bug Compilation en C avec boucle FOR dans le terminal
Heu... Pas de méthode main dans ce que tu donnes au compilateur ?
#3 Le 22/02/2013, à 21:03
- Kail
Re : Bug Compilation en C avec boucle FOR dans le terminal
voici le programme
int addfor(int a,int b){
int i;
i=0;
for(i==0;i<a;i=i+1){
return addfor(a-1,b+1);
}
return b;
}
Non mais on a pas besoin de main là, car je n'utilise pas de printf, d'ailleurs avec les autres exercices données par mon professeur, en While, ça marchait très bien.
Hors ligne
#4 Le 22/02/2013, à 22:18
- Braun
Re : Bug Compilation en C avec boucle FOR dans le terminal
Bonsoir,
Non mais on a pas besoin de main là, car je n'utilise pas de printf, d'ailleurs avec les autres exercices données par mon professeur, en While, ça marchait très bien.
Là, j'en apprends tous les jours!
J'ai vu pas mal de compilateurs C et c'est bien la première fois que j'entends parler d'un Link edit qui n'aurait pas besoin d'un (coup de) main.
Hors ligne
#5 Le 22/02/2013, à 22:56
- pingouinux
Re : Bug Compilation en C avec boucle FOR dans le terminal
Bonsoir,
(.text+0x18): undefined reference to `main'
Non mais on a pas besoin de main là, car je n'utilise pas de printf
N'empêche que ld en réclame un quand même.
D'autre part, je ne vois pas bien ce que tu essayes de faire avec ta fonction addfor : elle est appelée de façon récursive pour finalement retourner a+b si a est positif, et b sinon.
Hors ligne
#6 Le 22/02/2013, à 22:58
- Madeba
Re : Bug Compilation en C avec boucle FOR dans le terminal
Bonsoir,
Là, j'en apprends tous les jours!
J'ai vu pas mal de compilateurs C et c'est bien la première fois que j'entends parler d'un Link edit qui n'aurait pas besoin d'un (coup de) main.
Nan mais il a pas besoin de printf qu'il te dit
j'aime bien aussi le for(i==0)
Je crois que ça serait plus simple de nous dire ce que le programme est censé faire...
Dernière modification par Madeba (Le 22/02/2013, à 22:58)
Hors ligne
#7 Le 22/02/2013, à 23:06
- Kail
Re : Bug Compilation en C avec boucle FOR dans le terminal
Vous êtes serieux là ?
C'est la fonction addition je suis en première année c'est mon second semestre lol c'est vraiment du bas niveau hein.
Enfaîte effectivement j'avais besoin d'un MAIN !
Hors ligne
#8 Le 23/02/2013, à 07:29
- pingouinux
Re : Bug Compilation en C avec boucle FOR dans le terminal
Remarques sur addfor :
La boucle for n'est au plus parcourue qu'une seule fois (à cause du return à l'intérieur). Si tu veux utiliser cette méthode pour faire une addition d'un entier positif ou nul et d'un entier quelconque, il vaut mieux faire ceci (sans appel récursif) :
int addfor(int a,int b){
int i;
for(i=0;i<a;i=i+1){ b++; }
return b;
}
ou mieux
int addfor(int a,int b){
for(;a>0;a--,b++);
return b;
}
Si tu veux traiter aussi le cas a<0, il faut tester a en début de fonction, et faire l'une ou l'autre boucle :
int addfor(int a,int b){
if (a>0) for(;a>0;a--,b++);
else for(;a<0;a++,b--);
return b;
}
Attention :
C'est
for(i=0;i<a;i=i+1)
et non
for(i==0;i<a;i=i+1)
Dernière modification par pingouinux (Le 23/02/2013, à 08:03)
Hors ligne