Eine Frage zu Standards ...
-
... genauer gesagt zwei: den C99 und den C++11.
C99: mir wurde gesagt, dass dieser C-Standard trotz seines Alters immer noch unzureichend unterstützt wird, allerdings aus einer nicht gesicherten Quelle. Unterstützen zumindest gcc/MSVS diesen Standard, oder hinken diese immer noch hinterher?
C++11: Ist erst letztens rausgekommen, weiß ich, und deshalb wird's wohl auch erstmal keine Unterstützung für g++ geben (wie das bei MSVS ist, ist mir hier relativ egal, ich schreibe nur C-Programme für Windows). Aber wann gibt es eventuell (keine verbindliche Empfehlung, nur eine subjektive Einschätzung aufgrund von Erfahrung in diesem Gebiet) eine Version von g++, die die Sprachbausteine von C++11 unterstützen wird?
-
C99: Was heißt "hinken diese immer noch hinterher"? Das würde ja heißen, das die Compiler C99 unterstützen müssen? Ich weiß nur eines, der GCC erhebt den Anspruch auch ein reiner C Compiler zu sein und entsprechend auch eine C-fanatische Community zu haben, die sogar C++ missachtet.
Wenn der GCC also kein oder nicht zurreichend C99 unterstützt, ist das tatsächlich "hinterher hinken".Aber der MSVC++ ist ein reiner C++ Compiler. Und die Community dahinter ist eher C++-lastig. Weiterhin kennt der ISO C++ 1998 und 2011 kein C99! D.h. auch, das ein C++ Compiler kein C99 unterstützen muß. Was der MSVC++ hier auch nicht tut. Somit hinkt er nicht hinterher.
-
-
MS Visual C++ unterstützt kein C99, zumindest nicht vollständig.
-
Artchi schrieb:
C99: Was heißt "hinken diese immer noch hinterher"? Das würde ja heißen, das die Compiler C99 unterstützen müssen? Ich weiß nur eines, der GCC erhebt den Anspruch auch ein reiner C Compiler zu sein und entsprechend auch eine C-fanatische Community zu haben, die sogar C++ missachtet.
Wenn der GCC also kein oder nicht zurreichend C99 unterstützt, ist das tatsächlich "hinterher hinken".Wenn der C-Standard proprietär wäre, müsste ich dir zustimmen. Das hieße nämlich, dass nur der Hersteller sagen kann, wann was ein gültiger, standardkonformer Compiler ist (und auch, wenn Microsoft es nicht einsehen will, der IE unterstützt vielleicht ihren HTML-Standard, aber nicht den öffentlichen HTML-Standard ... ist es mal wieder Zeit für einen Standard nach W3C?). Ist er aber nicht - jeder kann in das Dokument, welches die Sprache definiert, reinschauen. Und deshalb ... was definiert einen C-Compiler als C-Compiler? Dass er irgendeinen Standard unterstützt? Dass er den Neusten unterstützt?
Allerdings habe ich eine Unterscheidung zwischen gcc und g++ gemacht - ich dachte, damit hätte ich ermittelt, dass ich mir über die Unterschiede der Compiler für Ihre jeweilige Sprache durchaus bewusst bin.
Artchi schrieb:
Aber der MSVC++ ist ein reiner C++ Compiler. Und die Community dahinter ist eher C++-lastig. Weiterhin kennt der ISO C++ 1998 und 2011 kein C99! D.h. auch, das ein C++ Compiler kein C99 unterstützen muß. Was der MSVC++ hier auch nicht tut. Somit hinkt er nicht hinterher.
Verzeihung, eventuell bin ich gerade ganz schön blöde, aber soweit ich weiß, kann man in den Projekteinstellungen festlegen, ob als C- oder C++-Code kompiliert werden. Somit wurde mir zu verstehen gegeben, dass es sich (auch) um einen C-Compiler handelt - und schon sind wir wieder bei der Frage oben: wann ist ein C-Compiler ein C-Compiler?
@Daniel E.:
Danke, die Übersicht kannte ich noch nicht
-
DER MSVC kann nur C89 und das wird auch so bleiben, eben weil es kein oder nur geringes Interesse an einen C99 fähigen MSVC gibt. Wer mit MSVS arbeitet, macht C++ oder C#, ganz sicher kein reines C (warum auch).
-
Hmmh schrieb:
DER MSVC kann nur C89 und das wird auch so bleiben, eben weil es kein oder nur geringes Interesse an einen C99 fähigen MSVC gibt. Wer mit MSVS arbeitet, macht C++ oder C#, ganz sicher kein reines C (warum auch).
Tja, ich frage mich: Warum nicht?! Schließlich basiert ja Windows selbst auf C und eingebette Software wird vor allem in C programmiert.
L. G.
Steffo
-
Der G++ unterstützt schon seit ein paar Jahren große Teile von C++11. MSVC ist n Witz dagegen.
-
Is gut jetzt, so langsam dürfte jeder wissen das du MSVC-Hasser durch und durch bist
-
314159265358979 schrieb:
Der G++ unterstützt schon seit ein paar Jahren große Teile von C++11. MSVC ist n Witz dagegen.
Witzig, weil C++11 erst dieses Jahr rausgekommen ist, möchte ich meinen ... die Jungs müssen nicht nur geile Programmierer, sondern auch klasse Hellseher sein.
-
Es gab doch viele VORAB-Versionen des Standards
-
Steffo schrieb:
Hmmh schrieb:
DER MSVC kann nur C89 und das wird auch so bleiben, eben weil es kein oder nur geringes Interesse an einen C99 fähigen MSVC gibt. Wer mit MSVS arbeitet, macht C++ oder C#, ganz sicher kein reines C (warum auch).
Tja, ich frage mich: Warum nicht?! Schließlich basiert ja Windows selbst auf C und eingebette Software wird vor allem in C programmiert.
L. G.
SteffoIMO basiert die ganze API auf C89, wieso sollten sie ihre Mühe machen, ein weitere Sprachvariante zu unterstützen, wenn der Kompatibitlitätslayer aus Visual C++ reicht?
-
Zeus schrieb:
IMO basiert die ganze API auf C89, wieso sollten sie ihre Mühe machen, ein weitere Sprachvariante zu unterstützen, wenn der Kompatibitlitätslayer aus Visual C++ reicht?
Weil C99 Vorteile mit sich bringt und ein Milliardenkonzern nicht derart dilletantisch vorgehen sollte!
-
unter windows macht es einfach keinen sinn mehr in reinem c zu programmieren ausser man programmiert treiber.
-
C macht unter Windows keinen Sinn. Dementsprechend gibt es keine Nachfrage nach C99 und daher wird ein Milliardenkonzern wie Microsoft auch nicht darin investieren.
-
+c schrieb:
unter windows macht es einfach keinen sinn mehr in reinem c zu programmieren ausser man programmiert treiber.
ACK
-
Steffo schrieb:
Zeus schrieb:
IMO basiert die ganze API auf C89, wieso sollten sie ihre Mühe machen, ein weitere Sprachvariante zu unterstützen, wenn der Kompatibitlitätslayer aus Visual C++ reicht?
Weil C99 Vorteile mit sich bringt und ein Milliardenkonzern nicht derart dilletantisch vorgehen sollte!
Soso bennen sie doch mal.
-
dot schrieb:
C macht unter Windows keinen Sinn. Dementsprechend gibt es keine Nachfrage nach C99 und daher wird ein Milliardenkonzern wie Microsoft auch nicht darin investieren.
FULL ACK
-
-
C99 bringt evtl. Vorteile gegenüber C89. Aber sobald ich C++ zur Verfügung hab, wird das alles irrelevant. Und C-Code der portabel sein muss, wird in C89 geschrieben. Also bringt C99 Support für MSVC absolut Nüsse...