Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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,

Kail a écrit :

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,

Kail  #1 a écrit :

(.text+0x18): undefined reference to `main'

Kail  #3 a écrit :

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

Braun a écrit :

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 tongue
j'aime bien aussi le for(i==0) cool
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