Visual Studio C Compiler Panne



  • EDIT: mein VC++ scheint inline variablen nicht zu mögen, denn laut c89 müssen alle Variablen am Anfang eines Blocks stehen (siehe hier). Meine Frage also, wie kann ich VC auf c99 stellen? naja, vllt finde ich das auch gleich selber raus...

    Ich habe eben versucht den folgenden Quelltext zu kompilieren. Dabei stoße ich auf eine unverständliche Fehlermeldung.

    #include "stdafx.h"
    #include <stdlib.h>
    
    int main(){
    	int L=1;
    	char c;
    	printf( "%i%i%i", L, 2, 3 );
    	char dict[25][10];
    
    	getchar();
        return 0;
    }
    

    Der Fehler

    test.cpp(8) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ'
    

    ich bin aber nicht Blind und sehe überall dort ein Semikolonen wo sie hingehören.

    zur Info:
    Das Programm soll erstmal nicht sinnvoll sein, denn ich habe es gekürtzt um es auf das Problem zu beschränken. Wenn entweder der Funktionsaufruf fscanf oder die darauffolgende Typendefinition gelöscht wird, gibt es keinen Fehler. Ich nutze zum ersten mal Visual C++ 2008 Express und hab die kompilierungsart auf C umgestellt. Alle Ursachen, die ich vermutet habe, werden dadurch widerlegt, das die einzelnen Zeilen nicht fehlerhaft zu sein scheinen. Bitte um Hilfe

    ps: ich weiß nicht, ob das definitiv das richtige board ist, um die besten Antworten zu erhalten, da es nichts mit MFC zu tun hat. Ein problem mit C ist es aber auch nicht.



  • In C musst Du alle Variablen ganz am Anfang deklarieren und darfst nicht mitten drin eine Variable anlegen...



  • Du kannst nicht einfach auf C99 umstellen. Der Compiler unterstützt nunmal nur C89. Damit musst du leben oder einen anderen Compiler nehmen.

    EDIT:
    Kleiner Tipp: Wenn du irgendwo mitten in einer Funktion gerne Variablen deklarieren möchtest, um sie an der Stelle vor Augen zu haben, an der sie verwendet werden, kannst du auch einfach einen neuen Block (geschweifte Klammern) benutzen (sofern sie nicht viel später in der Funktion nochmal gebraucht werden).


Anmelden zum Antworten