Wie entwickelt man C mit Visual Studio 2010?

Lesezeit: 4 Minuten

Benutzer-Avatar
Jeff

Gibt es eine Möglichkeit, reines ANSI C mit Visual Studio 2010 zu entwickeln?

  • @Atha: Ich verstehe nicht, dass dieser Kommentar alles andere als ein Versuch ist, einen Flamewar anzuzetteln. Sie verunglimpfen Microsofts C-Compiler implizit als “keinen richtigen” Compiler, was nicht einmal im Entferntesten fair erscheint. Offensichtlich unterstützen Sie Ihre Meinung in keiner Weise und machen nicht einmal deutlich, dass es sich tatsächlich um eine Meinung handelt. Sie haben lediglich eine persönliche Vorliebe für GCC, daran ist natürlich nichts auszusetzen, aber es gibt nichts objektiv Angemesseneres an GCC als cl.exe, wenn Sie die Tatsache überwinden können, dass es zusammen mit einer IDE gebündelt ist.

    – Cody Grey

    24. April 2011 um 14:49 Uhr


  • Der MS-Compiler ist ein richtiger C++-Compiler, kein richtiger C-Compiler. Warum zum Teufel sollte jemand C mit einem Compiler entwickeln wollen, der C nicht kann. Der MS-Compiler ist nicht einmal vollständig kompatibel mit C90.

    – Athabaska Dick

    24. April 2011 um 16:33 Uhr

  • @Atha: Sie behaupten erneut, dass es sich nicht um einen richtigen C-Compiler handelt, ohne Ihre Meinung zu unterstützen. Überprüfen Sie meine Antwort; Es ist ein vollkommen gültiger C-Compiler, wenn Sie wissen, was Sie tun. Es gibt Bereiche der Spezifikation, in denen GCC ebenfalls nicht vollständig konform ist. Darüber zu streiten ist nicht besonders ergiebig. In der Dokumentation steht nichts, was besagt, dass der Compiler von Microsoft “C nicht ausführen soll”.

    – Cody Grey

    25. April 2011 um 8:12 Uhr

  • @Cody Ich denke, die Unterschiede, die Atha anspricht, sind, weil es in msvc häufiger und seltener als in GCC auf grundlegende Kompatibilitätsprobleme zu stoßen scheint. Selbst wenn dies nicht der Fall wäre, gibt es seltsame Funktionen von msvc, die darauf ausgelegt zu sein scheinen, die Portabilität von Code zu minimieren, wenn dies nicht sofort zu Umsatzeinbußen führt. Versuchen Sie, einen beliebigen Assistenten zu verwenden, der Boilerplate-Code erstellt. Es scheint, dass sie Code erstellen, der andere Compiler ersticken würde. Sie können auch nach „mscv c-Konformität“ oder „msvc-Vendor-Lockin“ suchen.

    – Quietschend

    17. Juni 2013 um 20:16 Uhr

Benutzer-Avatar
Cody Grey

Ja es ist möglich. MSDN bietet hier einige Informationen: ANSI C-Konformität.

Schritt eins besteht darin, den Compiler so einzustellen, dass er C-Code und nicht C++-Code erzeugt. Tun Sie dies über die Eigenschaften Ihres Projekts. Erweitern Sie die C/C++-Kopfzeile und klicken Sie auf „Erweitert“. Legen Sie die Eigenschaft „Compile As“ auf „Compile as C Code“ fest (dies entspricht der Angabe der /TC Schalter auf der Kommandozeile). Noch einfacher ist es, Ihre Dateien einfach mit a zu benennen *.c Verlängerung.

Schritt zwei ist die Deaktivierung der Microsoft-Erweiterungen der ANSI-Standards. Diese unterliegen der /Za und /Ze Compilerschalter. Sie finden diese auch in den Eigenschaften Ihres Projekts. /Za bewirkt, dass der Compiler einen Fehler für Sprachkonstrukte ausgibt, die nicht mit dem ANSI-Standard kompatibel sind. Das /Ze Schalter aktiviert Microsoft-spezifische Erweiterungen; Sie möchten sicherstellen, dass dieser gedreht ist aus.

Obwohl ich nicht glaube, dass Microsoft völlig unterstützt den C99-Standard. Sehen (und abstimmen!) diesen Fehlerbericht auf MS Connect, diesen Blogeintrag vom VC++-Team und diese Seite für ein konkretes Beispiel, wo dieser Mangel an Unterstützung offensichtlich wird. Es bietet jedoch volle Unterstützung für den C90-Standard.

  • Nur um anzumerken, dass der Schalter /Ze seit Version 2005 veraltet ist.

    – Windreiter

    19. Mai 2013 um 20:50 Uhr

  • @WindRider Vermutlich, weil es die Standardoption ist. Die Angabe bedeutet dasselbe wie nicht Angabe. Das macht es ziemlich sinnlos. Der einzige Schalter, den Sie brauchen, ist \Za. Wenn es angegeben ist, erhalten Sie eine strikte ANSI-Konformität; Wenn nicht, erhalten Sie Microsoft-spezifische Erweiterungen.

    – Cody Grey

    20. Mai 2013 um 4:44 Uhr

  • Der Schalter /Za (Schritt zwei in der Antwort) befindet sich unter Eigenschaften >> C/C++ >> Sprache

    – rund

    27. Juli 2013 um 6:21 Uhr

  • Ich denke, VS 2012 und früher unterstützen nur den C89 C-Standard, mit Ausnahme einer Handvoll C99-Erweiterungen. Bei social.msdn.microsoft.com/Forums/vstudio/en-US/… ist ein Diskussionsthread darüber. Und es wird erwähnt, dass MS keine Pläne hat, einen neueren C-Standard zu unterstützen.

    – Gleichgültig

    18. August 2013 um 21:18 Uhr


Über das Ändern der Dateierweiterung in .c können Sie loslegen, aber hier sind auch einige Änderungen an der Projektdatei. Siehe hier für Details: http://support.microsoft.com/kb/829488/en-us

Dazu gibt es auch einen guten Podcast: http://channel9.msdn.com/Blogs/Sam/C-Language-Programming-with-Visual-Studio-2010-Ultimate-Pro-or-VC-Express

1374350cookie-checkWie entwickelt man C mit Visual Studio 2010?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy