Initialisierung durch case-Marke übersprungen
-
switch (piece_on_square(from)) { case PIECE_PAWN: // pawns int rank; rank = square_to_rank(from);Obiges Codefragment ist funktionsfähig. Aber durch die kleine Änderung bekomme ich eine Fehlermeldung:
Initialisierung von 'rank' durch case-Marke übersprungen.
switch (piece_on_square(from)) { case PIECE_PAWN: // pawns int rank = square_to_rank(from);Was steckt dahinter?
-
Mach folgendes:
//... case 1: { // <-- int a; // ... } // <-- break; case 2:Die case-Marken haben keinen eigenen Scope, das heißt die Variablen werden immer angelegt. Die Initialisierung kann aber nicht stattfinden, da die ja dem case zugeordnet ist. So grob mal formuliert.

Also einfach einen neuen Scope schaffen und fertig.