Seite 1 von 1

C Anfänger Die For-Schleife

Verfasst: Mi Feb 12, 2014 4:17 pm
von eisdragon
Hallo ich habe mal eine Frage zu der übung im C-Tutorial Die For-Schleife

ich habe mir die übung jetzt schon mehrmals durchgelesen und komm nicht da hinter wie ich es verstehen soll.
um auf den punkt zu kommen ist mein problem bei dem beispiel Quelltext, denn ich komme nicht da hinter wie ich in mir korrekt anzeigen lassen soll.

Code: Alles auswählen

#include <stdio.h>

int main(void)
{
  
  for( int wert = 1; wert <= 5; wert = wert + 1 )
  {
    printf( "Ich bin bei '%d'{n", wert )
  }
  
  return 0;
}
so das habe ich durch den Compiler durch laufen lassen und raus kam dann das

Code: Alles auswählen

C:\Users\Micha\Desktop\c\hworld>gcc 8hworld.c
8hworld.c: In function 'main':
8hworld.c:6:3: error: 'for' loop initial declarations are only allowed in C99 mo
de
8hworld.c:6:3: note: use option -std=c99 or -std=gnu99 to compile your code
8hworld.c:9:3: error: expected ';' before '}' token
ich habe es mir mehrere male angeschaut und komme nicht drauf was falsch ist

danke schon mal in voraus

Edit by cloidnerux: Code-Tags

Re: C Anfänger Die For-Schleife

Verfasst: Mi Feb 12, 2014 4:23 pm
von cloidnerux
Hi und Willkommen im Forum :D
ich habe es mir mehrere male angeschaut und komme nicht drauf was falsch ist
Der Fehler ist nicht kompliziert und ist verschiedenen C-Standards zu verdanken:

Code: Alles auswählen

for( int wert = 1; wert <= 5; wert = wert + 1 )
Diese Initialisierung ist erst ab C99 möglich, was dein Compiler auch anmerkt.
Du kannst jetzt entweder deinen Compiler mit dem Flag

Code: Alles auswählen

-std=c99
dazu auffordern mit dem C99 Standard zu compilieren, oder das "int wert" aus der for schleife entfernen:

Code: Alles auswählen

int wert;
for(wert = 1; wert <= 5; wert++)
Der Grund ist, dass früher, als Computer noch langsam waren, alle Variablen die man genutzt hat am Anfang einer jeden Funktion vor allem anderen Deklariert werden mussten, so auch die Zählervariablen in den for-schleifen.

Mit freundlichen Grüßen

cloidnerux

Re: C Anfänger Die For-Schleife

Verfasst: Mi Feb 12, 2014 4:25 pm
von PairOfOldShoes
Außerdem fehlt dir ein ";" nach dem printf-Befehl. ;)

Re: C Anfänger Die For-Schleife

Verfasst: Mi Feb 12, 2014 4:50 pm
von eisdragon
danke für die schnelle antwort

und noch mals danke

Re: C Anfänger Die For-Schleife

Verfasst: Mi Feb 12, 2014 4:51 pm
von nufan
Hallo :)

Ich gebe zu das ist etwas verwirrend, aber gleich nach dem Beispiel steht auch:
Wiki hat geschrieben:Alte C-Compiler akzeptieren diese Syntax leider noch nicht. In dem Fall muss man die Variable vorher definieren.
PairOfOldShoes hat geschrieben:Außerdem fehlt dir ein ";" nach dem printf-Befehl. ;)
'{' statt '\' ist dir nicht aufgefallen? ;) Aber im Tutorial ist übrigens beides richtig.

Re: C Anfänger Die For-Schleife

Verfasst: Do Feb 13, 2014 10:30 am
von Xin
dani93 hat geschrieben:Ich gebe zu das ist etwas verwirrend, aber gleich nach dem Beispiel steht auch:
Wiki hat geschrieben:Alte C-Compiler akzeptieren diese Syntax leider noch nicht. In dem Fall muss man die Variable vorher definieren.
Ich wollte gerade ansetzen, es im Wiki zu verbessern, aber da war schon einer schneller. :-)

Ich habe den Hinweis für -std=c99 noch als Fussnote hinzugefügt.

Re: C Anfänger Die For-Schleife

Verfasst: Do Feb 13, 2014 11:16 am
von PairOfOldShoes
dani93 hat geschrieben:
PairOfOldShoes hat geschrieben:Außerdem fehlt dir ein ";" nach dem printf-Befehl. ;)
'{' statt '\' ist dir nicht aufgefallen? ;) Aber im Tutorial ist übrigens beides richtig.
*lol* nein, hab nur einen Schnell-Scan auf den Compilerfehler gemacht ;)