| 

.NET C# Java Javascript Exception

1
Ich habe hier folgende Zeile:

char message[] = "TexTexTexT";


Davor hatte ich es so:

const char* message = "TexTexTexT";


Beim Kompilieren kommt jedoch die Fehlermeldung (in dieser Zeile):
error C2143: syntax error : missing ';' before 'type'


Ich frage mich, wieso diese Fehlermeldung kommt, obwohl eine Zeile darüber die Zeile korrekt mit einem Semikolon beendet wird?
News:
29.08.2012
starki 603 1 8
2 Antworten
1
Ich bin kein C-Profi aber laut galileocomputing - C von A bis Z fehlen die geschweiften Klammern:

char message[] = { "TexTexTexT" };
29.08.2012
Floyd 14,6k 3 9
Ne, habs mittlerweile herausgefunden. Das Visual Studio 6 macht in dem Punkt Probleme und will, dass alle Variablen komischerweise am Anfang der Funktion deklariert werden und nicht erst später. Diesselbe Zeile an den Anfang geschrieben und es kam keine Fehlermeldung.
starki 29.08.2012
2
@starki: nee, das ist nicht komisch, sondern einer der Unterschiede zwischen C und C++:
"Während in C Variablendefinitionen nur am Blockanfang vor der ersten Anweisung erlaubt sind, kann in C++ eine Variable überall definiert werden. Sie gilt dann für den gesamten restlichen Bereich des aktuellen Blocks und aller darin verschachtelten Blöcke."
http://www.willemer.de/informatik/cpp/var.htm
Matthias Hlawatsch 30.08.2012
1
Es liegt am verwendeten C Standard. Der MS Compiler ist nicht C99 kompatibel. Mit gcc würde das Statement übersetzen, es sei den man verwendet den Schalter -pedantic
Um das zu umgehen kann man den Codeblock in geschweifte Klammern setzen, da Variablendeklarationen zu Beginn eines Blocks erlaubt sind: Siehe auch hier.
Oder man hält sich an den Standard ;-)
30.08.2012
puls200 3,8k 7

Stelle deine C-Frage jetzt!