Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [c] Variable in for Schleife und E2188 Fehler [gelöst] (https://www.delphipraxis.net/102739-%5Bc%5D-variable-schleife-und-e2188-fehler-%5Bgeloest%5D.html)

silver-moon-2000 3. Nov 2007 16:54


[c] Variable in for Schleife und E2188 Fehler [gelöst]
 
Hallo zusammen,

sorry, falls meine Frage nicht wirlich in dieses Forum passt, aber ich denke, Ihr könnt mir trotzdem helfe, weil :dp:

Mein Problem: Ich lerne seit kurzem C (Grundlagen). Unser Info-Prof. schreibt so for Schleifen:
Code:
for (int i = 0; i < 10, i++) {...}
In der FH wird Microsofts Visual Studio verwendet, auf dem das auch reibungslos klappt.
Zuhause habe ich gestern neben Turbo Delphi eben noch Turbo C++ installiert.

Da hagelt es drei Fehler
[C++ Error] Unit1.c(13): E2188 Expression syntax
[C++ Error] Unit1.c(13): E2451 Undefined symbol 'i'
[C++ Error] Unit1.c(13): E2379 Statement missing ;

So funktionierts wieder:
Code:
int i;
for (i = 0; i < 10, i++) {...}
Der langen Rede kurze Frage: Ist das eine Eigenschaft des Turbo C++ Compilers oder ein Fehler, den ich zu blöd zu finden bin?

Gruß
sm2k

klaus.meyer 3. Nov 2007 17:03

Re: [c] Variable in for Schleife und E2188 Expression Syntax
 
das Problem hatte ich beim GCC C-Compiler unter Linux auch schon.
Ich gehe davon aus, dass es sich um unterschiedliche C Standards
handelt. :gruebel:

Nur was jetzt der ANSI-C Standard ist weiss ich leider nicht. :mrgreen:

Viele Grüße

Klaus

Cyberbob 3. Nov 2007 17:12

Re: [c] Variable in for Schleife und E2188 Expression Syntax
 
das Deklarieren von Variablen in for() ist eine Eigenschaft, die C++ erst möglich gemacht hat. Schau mal in deinen Programmeinstellungen nach, was dort alles steht. da kann man einiges einstellen.

silver-moon-2000 3. Nov 2007 20:18

Re: [c] Variable in for Schleife und E2188 Expression Syntax
 
Zitat:

Zitat von Cyberbob
das Deklarieren von Variablen in for() ist eine Eigenschaft, die C++ erst möglich gemacht hat. Schau mal in deinen Programmeinstellungen nach, was dort alles steht. da kann man einiges einstellen.

Danke Dir für die erhellende Antwort.
Mann, jedes Mal muss ich wieder feststellen, dass :dp: :thumb:

boserPascal 3. Nov 2007 21:33

Re: [c] Variable in for Schleife und E2188 Fehler [gelöst]
 
In C++ kannst du Variablen dort definieren, wo sie benötigt werden. Sie sind dann auch nur in dem Block gültig in dem sie definiert wurden. Das heißt, wenn du schreibst
Code:
for(int i=0;i<10;i++)
{
  //tu irgendwas
}
dann kannst du i nur in der Schleife nutzen. Da es aber hier Fehlimplementierungen gibt, insbesondere in früheren Microsoft Compilern würd ich solche Sachen vermeiden. In C selbst müssen Variablen vor der ersten Code-Anweisung definiert werden. Also wie in Pascal, nur ohne extra Unterscheidung für Variablen-Definition und Code.

klaus.meyer 3. Nov 2007 21:36

Re: [c] Variable in for Schleife und E2188 Fehler [gelöst]
 
Cool THX habe ich auch was gelernt ;-)
Dann haben wir in der Schule den C++ Syntax gelernt als wir C gemacht
haben ;-)

SirThornberry 3. Nov 2007 21:47

Re: [c] Variable in for Schleife und E2188 Fehler [gelöst]
 
Zitat:

Zitat von klaus.meyer
Cool THX habe ich auch was gelernt ;-)
Dann haben wir in der Schule den C++ Syntax gelernt als wir C gemacht
haben ;-)

falsch. Dies ist keine Eigenschaft von C++ sondern eine Eigenschaft des verwendeten C-Standards das im Schleifenkopf nichts declariert werden darf. Es gibt auch c-standards wo dies erlaubt ist.

klaus.meyer 3. Nov 2007 21:51

Re: [c] Variable in for Schleife und E2188 Fehler [gelöst]
 
in welchen Standards ist es erlaubt? wir haben ANSI C gemacht.

SirThornberry 3. Nov 2007 22:11

Re: [c] Variable in for Schleife und E2188 Fehler [gelöst]
 
es gibt verschiedene Ansi-C standards. Die meisten Verwenden Ansi C-99

boserPascal 3. Nov 2007 22:18

Re: [c] Variable in for Schleife und E2188 Fehler [gelöst]
 
Tun sie eben nicht und deshalb solltest du solche C++ typischen Neuerungen welche erst später in C eingeflossen sind meiden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz