C: for-schleife

Das Forum für Programmierer und Systemadmins. Von Shell-, Perl- und PHP-Scripts bis zur objektorientierten Programmierung mit C++.

C: for-schleife

Beitragvon max_payne » Do 17 Nov, 2005 20:17

hm leute ich hab da n kleines problem

und zwar hab ich das gefühl, dass mich der kompiler etwas vera... will.

folgende zeile:
for(int intZ=0; intZ<intHoehe; intZ++)

fehlermeldung:
Anfangsdeklaration in >>for<<-Schleife ausserhalb C99 Modus verwendet.

ich frag mich jetzt:
seit wann darf man die Variablen nicht mehr innerhalb der for-schleife deklarieren?
max_payne
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4982
Registriert: Mo 30 Aug, 2004 12:25

Beitragvon robspr » Do 17 Nov, 2005 20:44

Ich würde die Fehlermeldung so interpretieren:

Du hast zwar eventuell für Teile deines Programmes den C99 Modus aktiviert, nicht aber für die Funktion wo deine For-Schleife drinnen ist, und für C-Programme die nicht im C99 Modus sind gilt, das die Variablen-Deklaration am Anfang des Blockes stehen muss.

Oder eben zu deiner letzten Frage: im Standard-C darf man Variablen nicht in der for-Schleife deklarieren, erst ab C99 (ANSI-Standard aus 1999).
robspr
Board-Mitglied
Board-Mitglied
 
Beiträge: 211
Registriert: So 21 Nov, 2004 12:58

Beitragvon max_payne » Do 17 Nov, 2005 21:11

also ich arbeite unter suse 9.3, sollte das da nicht funzen?
max_payne
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4982
Registriert: Mo 30 Aug, 2004 12:25

Beitragvon robspr » Do 17 Nov, 2005 21:21

Die verwendete Linux Distribution, oder auch das verwendete Betriebssystem hat damit sicher nichts zu tun.
Das hängt nur vom C-Compiler ab und von den Einstellungen des C-Compilers. Schau mal ob du eine PreCompiler-Option für C99 setzen kannst.

schau mal da: http://de.wikipedia.org/wiki/C99

Edit: für gcc setze -std=c99, schau auch da: http://rush3d.com/reference/gcc-man/Standards.html
robspr
Board-Mitglied
Board-Mitglied
 
Beiträge: 211
Registriert: So 21 Nov, 2004 12:58

Re: C: for-schleife

Beitragvon superracer » Do 17 Nov, 2005 22:39

max_payne hat geschrieben:ich frag mich jetzt:
seit wann darf man die Variablen nicht mehr innerhalb der for-schleife deklarieren?

hat man noch nie wirklich dürfen, nur eben in c99 oder auch c++...
superracer
Board-User Level 3
Board-User Level 3
 
Beiträge: 1073
Registriert: So 04 Jul, 2004 11:18

Beitragvon ulrich » Fr 18 Nov, 2005 08:20

was heißt "noch nie wirklich dürfen"?
die aktuellen standards sehen es so vor, und die bestehen schon seit mehr als einem halben jahrzehnt...
ulrich
Senior Board-Mitglied
Senior Board-Mitglied
 
Beiträge: 287
Registriert: Do 13 Nov, 2003 14:27

Beitragvon superracer » Fr 18 Nov, 2005 08:54

ulrich hat geschrieben:was heißt "noch nie wirklich dürfen"?
die aktuellen standards sehen es so vor, und die bestehen schon seit mehr als einem halben jahrzehnt...

da müßten wir jetzt drüber streiten, ob c99 der "aktuelle standard" von c ist, oder ob ("plain old") c und c99 zwei verschiedene dinge sind...
superracer
Board-User Level 3
Board-User Level 3
 
Beiträge: 1073
Registriert: So 04 Jul, 2004 11:18


Zurück zu PROGRAMMIER FORUM

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste