2012-04-05 2 views

Antwort

16

Genau genommen unterstützt GCC nur C89, C++ 98 und C++ 03, alle seit 4.3.

Unterstützung für C99 ist noch unvollständig, aber eine sehr große und brauchbare Untergruppe wurde von GCC für eine lange Zeit unterstützt.

Experimentielle C++ 11-Unterstützung begann mit 4.3 und wurde seither verbessert; es ist bereits sehr gut in 4.6.x verwendbar, und viel mehr wurde in 4.7 hinzugefügt (obwohl 4.7.0 ein wenig instabil ist).

Es gibt auch einige C11-Unterstützung, aber viele der Änderungen für C11 erfordern eine entsprechend neue C-Bibliothek, die nicht so leicht ersetzbar ist.

9

Sie die breiteste Unterstützung von Standards mit der neuesten Version erhalten - 4.7 im Moment. Der gewählte Standard kann mit dem Schalter -std eingestellt werden. Here is an article that describes the available values. Einige zusätzliche Funktionen/unterschiedliches Verhalten können auch mit -fpermissive aktiviert werden.

+0

Ich kann viele Standard-GCC und G ++ auf der von Ihnen bereitgestellten Webseite unterstützen. Und wo gibt es Informationen darüber, welche gcc- und g ++ - Version welche Standards unterstützt? Danke ~ – sam

+0

Ich glaube nicht, dass es solche Informationen gibt, und wenn es da wäre, würden Sie meistens die gleichen möglichen Werte für "-std" bekommen. Es ist der neueste Zusatz "C++ 0x" in 4.3. Standards und ihre Umsetzung in GCC sind zwei verschiedene Dinge. Wie nennt man "Unterstützung"? Sogar mit der neuesten Version hat GCC noch Korrekturen an C++ 03 hinzugefügt und dieser Standard ist fast 10 Jahre alt (um pedantisch zu sein, das meiste war das gleiche wie C++ 98, also ist es noch älter). –

+0

Danke ~ Ich kann den Unterschied verstehen. Und was ist der Fall, wenn man -permissive verwendet? – sam

0

Die Unterstützung Details finden Sie unter Gnu Website. Ich erinnere mich, dass es dutzende Standards gibt, die gcc für das c99 nicht anwendet. Wie auch immer, um c99 Unterstützung in gcc zu haben braucht einfach --std = c99 Parameter

Verwandte Themen