UNIXwork

C Syntax Error

10. May 2021

Finde den Syntax-Fehler in folgendem C-Code:

#include <stdio.h>

int main(int argc, char **argv) {
    int a = 3;
    switch(a) {
        case 1:
            printf("1\n");
            break;
        case 2:
            printf("2\n");
            int c2 = 0;
            break;
        case 3:
            int c3 = 3;
            printf("%d\n", c3);
            break;
    }
    return 0;
}

Ein ähnlicher Fall wie hier im Beispiel hatte sich bei mir zugetragen. Der Compiler bemängelte die Variablendeklaration nach dem Case. Das heißt, hier im Beispiel ist die fehlerhafte Zeile die Variablendeklaration im Case 3.

Ich gebe zu, dass mich dies erstmal verwirrt hat und ich dachte, ich hätte versehentlich im C90-Modus kompiliert. Der Grund, wieso dies einen Fehler wirft, ist, dass ein Case nichts anderes als ein Label ist und Variablendeklarationen in C nicht mit einem Label versehen werden können.

Autor: Olaf | 0 Kommentare | Tags: c

Kommentare


Name
Webseite (optional)
Captcha: 3x=12   x=?
Kommentar