Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 16.02.2004, 16:27 Titel: "Neudefinition; Mehrfachinitialisierung" |
|
|
vor ein zwei tagen hab ich mein windof neu installiert. leider ist bei der neuintallation mein Visual Studio .net am a genanegn(ist ja klar; bei den vielen dlls die VS.net im windof-ordner instaliert...). da ich die CDs von VS.net nich mehr find(hab sie jemanden ausgeliehen.....) hab ich jetzt das gute alte VC++6 draufgehauen. ging auch alles ganz gut. nur wenn ich mein projekt(das mit VS.net erfolgreich zu kompilieren ging!!!!) mit VC++6 kompiliern will gibts da fehlermeldungen. und zwar
"Neudefinition; mehrfachinitialisiereung". und das gerade bei "schleifeendummies"....... mein code sieht ungefähr so aus:
for(int i=0;i<100;i+=1)
{
...........
}
diese for-schleife kommt 8-mal hintereinander. wenn ich jetzt kompiliere sagt er das die variable i "neudefiniert..." wird(diese meoldung 7-mal). das kann doich garnich sein denn die variable i ist wenn ich mich nicht täusche nur innerhalb der klammern existent???!!!! denn fehler kann ich ja auch beheben indem bei jeder for-schleife den namen des schleifen-dummies ändern(bei der erstn a, beide r zweiten b....). aber aus idealismus will ich dem fehler auch ohne ausweichen auf den grund gehen(ich könnte mit dem gedanken das ich ausgewichen wär heut nacht einfach nich einschalfen)
danke schon im vorraus |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 16.02.2004, 16:55 Titel: |
|
|
Du könntest ja auch am Anfang deiner Funktion das hier schreiben:
Dein Probem hatte ich auchmal. Aber aus irgendein Grund geht es bei mir wieder weiss aber nicht mehr warum :/ _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 16.02.2004, 17:06 Titel: |
|
|
das problem ergibt sich, wenn man variablen mehrfach deklariert...also:
int i = 5;
int i = 3;
hab das auch die ganze zeit bei for-schleifen. entweder das 2.te int weg, oder am anfang deklarieren a la fallenangel. |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 16.02.2004, 17:45 Titel: |
|
|
ja schon, aber das int i = 0; steht ja in dem header der for-schleife, d.h. ja das diese variable nach dem "}" nich mehr existiert!!! aber trotzdem sagt der m$ compiler neudefinition...... |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 16.02.2004, 17:52 Titel: |
|
|
is es aber schon, drum kannst dus ja auch schon am anfang definieren. vielleicht ist das aber auch eine einstellung... |
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 16.02.2004, 17:59 Titel: |
|
|
wenn man die variable im for() definiert steht sie ja vor {, ist also nach } noch gültig, man muss wie die andern schon gesagt haben:
Code: |
int i = 0;
for(i = 0; i < irgendwas; i++)
{
...
}
for(i = 0; i < irgendwas; i++)
{
...
}
|
|
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 16.02.2004, 18:06 Titel: |
|
|
Das Problem von ihn ist ja das es auch so gehenm müsste das er i immer wieder in dem for-Kopf definieren kann. Bei mir gehts ja auch wieder. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 16.02.2004, 18:19 Titel: |
|
|
ok, dann mach ich das int i = 0; halt ganz am anfang.... noch ein problem: jetzt kommt die meldung:
"error LNK2001: Nichtaufgeloestes externes Symbol _main
Debug/main.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise"
den fehler hatte ich früher schonmal...... da lags aber als daran das ich "main" falsch geschrieben hatte... |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 16.02.2004, 18:44 Titel: |
|
|
SYMPTOMS
If you declare the same variable in two different for-statements, the following error may appear:
Test.cpp(4) : error C2374: 'i' : redefinition; multiple initialization
CAUSE
The scope of a variable declared in the initialization part of a "for" loop is given local scope, as if it had been declared immediately prior to the for-statement.
RESOLUTION
Compile with /Za, Disable Language Extensions. To select this option in Developer Studio, select Project, Settings, and then click the C/C++ Tab. Change the Category to Customize and select Disable Language Extensions. |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 16.02.2004, 18:56 Titel: |
|
|
wenn ich die Sprach-erweiterungen deaktivier kommen zig fehler die aber nur in der "winnt.h" sind. ich glaube das las ich lieber....im mom nervt mich die meldung "nichtaufgelöstes symbol..." |
|
Nach oben |
|
|
|