Wie zu "simulieren" C99 in Visual Studio für Variablen-Deklaration
Ich bin mit Visual Studio 2012 zu entwickeln, die einfache Win32-C-Programme. Ich weiß, dass der VS-compiler unterstützt nur C89, aber ich würde gerne wissen, ob es gibt einen Weg, um diese Einschränkung zu umgehen.
Insbesondere würde ich mag, um Variablen zu deklarieren, irgendwo in meinem code, statt nur am Anfang des scope-Blöcke (C89 erfordert).
Vielen Dank im Voraus.
- Wie viel tun Sie dafür, dass der MSVC-compiler ist in C-Modus? Wenn du es auf C++ - Modus können Sie immer noch schreiben C und Sie können C99-Stil der Initialisierung der Variablen.
- In der Regel erstelle ich ein einfaches "Visual C++ - Empty Project", dann füge ich ein .c-Quellcode-Datei zu. Meinst du, ich sollte einfach hinzufügen .cpp-Dateien statt .c?
- Es ist eine schlechte Idee, kompilieren von C-Programmen in C++, gibt es viele feine Unterschiede: struct Umsetzung, implizite pointer-casts (z.B. den Rückgabewert von malloc), verschiedene bool-Implementierungen, verschiedene NULL-Implementierungen und so weiter.
- Hinzufügen eines
.c
Datei, die Standardeinstellungen für den compiler C++ (obwohl Sie außer Kraft setzen kann) Hinzufügen eines.cpp
- Datei wird die Standard-C++ - Modus. - Ja, siehe mein Kommentar auf DjSols post.
- mit Visual Studio 2012 zu entwickeln, die einfache Win32-C-Programme". Einfach wie in kein GUI, oder vielleicht nur die Reine Windows-API? In diesem Fall wird die beste Lösung sein könnte, nur mit Visual Studio als IDE und compilieren Sie die Programme mit einem echten C-compiler wie Mingw.
- Ich weiß nicht, ob Sie mit C++ - compiler könnte ein problem für meine Bedürfnissen. Ich habe einfach lernen müssen Win32-API für C-Programme, eigentlich bin ich ja mit Visual Studio nur für die integrierte MSDN-Dokumentation.
- Visual Studio 2013 unterstützt nun gemischte Deklarationen und code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Entscheidungen, die ich finden Sie unter:
Dies scheint ein älteres thread, aber gelandet erstmal hier, während ich war auf der Suche für die gleiche Frage, die ich dachte, ich sollte post ein update:
Als der VS13, die Visual C++ - compiler unterstützt C99-Stil Deklarationen von Variablen. Mehr details hier:
http://blogs.msdn.com/b/vcblog/archive/2013/06/28/c-11-14-stl-features-fixes-and-breaking-changes-in-vs-2013.aspx
Bauen Sie Ihre app mit dem C++ - compiler. Dies ist der einfachste Weg. Sie können noch schreiben C-code nur der name der Datei *.cpp
*x = (int*)malloc(sizeof(int) * 10);
kompiliert Prima unter C und C++void*
verhält sich anders.#ifdef __cplusplus
(z.B. statische Initialisierung von unions -)