interessanter Kommentar-Fehler
-
Hi,
Ich habe einen seltsamen Compiler-Fehler bei Kommentaren.
Bei einer bestimmten Funktion ist es mir nicht möglich, '//'-Kommentare zu setzen, sondern nur '/* */'-Kommentare.
Wenn ich es doch tue, kommt folgender Fehler:Fehler 1 error C2143: Syntaxfehler: Es fehlt ';' vor '{' c:\users\alex\documents\visual studio 2013\projects\rs\rs\main.c 5 1 RS Fehler 2 error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer '{' in "c:\users\alex\documents\visual studio 2013\projects\rs\rs\aufg3.h(23)" gefunden wurde
Bsp.:
unsigned int lower_and_compare(char* str1, char* str2) { unsigned int result = 0; //FEHLER lower(str1); lower(str2); //FEHLER for (; (*str1 != '\0') && (*str1 == *str2); str1++, str2++) ++result; return result; }
unsigned int lower_and_compare(char* str1, char* str2) { unsigned int result = 0; /* FUNKTIONIERT */ lower(str1); lower(str2); /* FUNKTIONIERT */ for (; (*str1 != '\0') && (*str1 == *str2); str1++, str2++) ++result; return result; }
In anderen Funktionen kann ich ganz normal Kommentare setzen.
Ich nutze Visual Studio 2013 professional (C-Modus)Hat jemand so etwas schonmal gesehen??
mfg
-
Jetzt funktioniert es.
Ich habe VS beendet, neu gestartet und das Projekt neu geladen.
Dann kam die Meldung 'Zeilenenden sind nicht konsistent' und ich musste mich für CR/LF entscheiden für Windows.. jetzt geht es.Vielleicht weiß ja trotzdem jemand, was dahinter steckt / wie das passieren konnte. Wäre schon interessant zu wissen, weil der Fehler nicht leicht zu finden war
-
Anscheinend wurde dein Zeilenende nicht als Zeilenende erkannt, das heißt, deine Datei sah für den Compiler effektiv so aus:
unsigned int lower_and_compare(char* str1, char* str2){ unsigned int result = 0; //FEHLER lower(str1); lower(str2); //FEHLER for (; (*str1 != '\0') && (*str1 == *str2); str1++, str2++) ++result; return result;}
Was dann nicht so ganz passt
Dahinter steckt:
https://en.wikipedia.org/wiki/Newline#Common_problems
-
Stimmt!Ich habe den Funktionsprototypen aus einer Textdatei kopiert, die unter Linux geschrieben wurde.. Das erklärt einiges
Danke!