Benutzer mit den meisten Antworten
Kompilerfehler C2143 im Zusammenhang mit C

Frage
-
Hallo Zusammen,
kann mir jemand erklären, warum der MSVC Kompiler einen Fehler wirft, wenn man eine Zuweisung an eine Variable zu Beginn eines Programms zwischen 2 Deklarationen setzt?
// C2143j.c int main() { int i = 0; i++; int j = 0; // C2143 }
Ich habe das Codefragement auch mit gcc kompiliert, dem ist das völlig egal.
Gibt es einen Grund weshalb der MS Kompiler das nicht will?
Danke!
- Bearbeitet bowie_22 Mittwoch, 2. Januar 2013 06:34
Antworten
-
In C ist das simpel und einfach nicht erlaubt. (Jedenfalls nicht in dem Standard, dern VC unterstützt). Dort müssen alle Variablen am Anfang des Blocks deklariert werden. In C++ geht das sehr wohl.
Warum verwendest Du kein C++? Wenn es um die Linkage geht, kannst Du ja extern "C" verwenden.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
- Bearbeitet Martin RichterModerator Mittwoch, 2. Januar 2013 07:11
- Als Antwort markiert bowie_22 Mittwoch, 2. Januar 2013 12:37
Alle Antworten
-
In C ist das simpel und einfach nicht erlaubt. (Jedenfalls nicht in dem Standard, dern VC unterstützt). Dort müssen alle Variablen am Anfang des Blocks deklariert werden. In C++ geht das sehr wohl.
Warum verwendest Du kein C++? Wenn es um die Linkage geht, kannst Du ja extern "C" verwenden.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
- Bearbeitet Martin RichterModerator Mittwoch, 2. Januar 2013 07:11
- Als Antwort markiert bowie_22 Mittwoch, 2. Januar 2013 12:37