Turbo C++: "Case umgeht die Initialisierung einer lokalen Variable"



  • Hi Leute,
    ich benutze Turbo C++ 2006. In letzter Zeit bekomm' ich ständig diese dumme Fehlermeldung:

    Case umgeht die Initialisierung einer lokalen Variable

    Sie tritt immer innerhalb von switch()-Blocks auf. Manchmal kann man sie verhindern, indem man die Reihenfolge der case-Blöcke vertauscht.

    Ich hab auch schon in der Borland-Hilfe nachgeschlagen, aber mit

    Es ist in C++ nicht zulässig, die Initialisierung einer lokalen Variablen zu umgehen.

    Dieser Fehler deutet auf ein case-Label hin, welches die Steuerung hinter diese lokale Variable transferiert.

    kann ich ehrlich gesagt gar nichts anfangen. Hat irgendjemand 'ne Idee, was diese Fehlermeldung heißt oder, was ich falsch mache? 😕

    Vielen Dank schonmal im Voraus! :xmas1:



  • Pack einfach allles was nach Deinem "case x:" kommt in geschweifte Klammern...

    Also anstatt:

    switch(x)
    {
      case y:
        int a;
        a = 12;
        break;
    }
    

    einfach:

    switch(x)
    {
      case y:
        {
          int a;
          a = 12;
        }
        break;
    }
    


  • Cool, danke! 👍
    Aber müsste man das nach ANSI-C++ Standards auch? :xmas1:


Anmelden zum Antworten