Seite 1 von 1

[gelöst] Redaclaration of ...

Verfasst: 17. September 2008 23:11
von gelignite
Hallo,

ich habe etwas Gefallen an dieser Ecke des Forums gefunden. :wink:

Aktuell beschäftigt mich dieser Gedanke:

Code: Alles auswählen

int main( void )
{
    int a;
    int a;          // Hier gibts eine Meldung von wegen "Redeclaration of a"

    for( int turn = 0; turn < 2; turn++ )     // Wir drehen 2 Runden
        int b;         // Keine Meldung hier
}
Da die Schleife hier mehrfach ausgeführt wird, sollte b doch ebenfalls redeklariert werden. Wieso gibt das keine Meldung?

Gruß,
gelignite

Verfasst: 18. September 2008 07:54
von Ginsengelf
Moin, b ist nur im Bereich eines Durchlaufs der Schleife definiert. Sobald die Schleife am Ende ankommt, verliert die Deklaration von b seine Gültigkeit. Wenn die Schleife dann oben weitermacht, kann b wieder neu deklariert werden.

Ginsengelf

Verfasst: 18. September 2008 15:58
von gelignite
Ah, okay. Klingt plausibel (und nach eingeschränktem "Lebensbereich"). Es ist demnach analog zu Folgendem:

Code: Alles auswählen

int a;  // "global"

if( true )
    int a; // auf den if-Block beschränkt
Vielen Dank.

Gruß,
gelignite