Quelle version de gcc et g ++ prend en charge quelle norme de c et de c ++?

Par exemple, quelle version de gcc prend en charge c99?

Existe-t-il un tableau ou un graphique montrant le statut standard pris en charge de gcc et g ++?

Comment gcc et g ++ ont évolué?

Merci ~

De manière très ssortingcte, GCC ne supporte que C89, C ++ 98 et C ++ 03, tout cela depuis 4.3.

La prise en charge de C99 est encore incomplète, mais un sous-ensemble très volumineux et utilisable est pris en charge par GCC depuis longtemps.

La prise en charge expérimentale de C ++ 11 a commencé avec la version 4.3 et s’est améliorée depuis; il est déjà très utilisable dans 4.6.x, et beaucoup plus a été ajouté dans 4.7 (bien que 4.7.0 soit un peu instable).

Il existe également une prise en charge de C11, mais bon nombre des modifications apscopes à C11 nécessitent une nouvelle bibliothèque C adaptée, qui n’est pas aussi facilement remplaçable.

Vous obtenez le plus large support de normes avec la dernière version – 4.7 pour le moment. La norme choisie peut être définie avec le commutateur -std . Voici un article décrivant les valeurs disponibles . Certaines fonctionnalités / comportements différents peuvent également être activés avec -fpermissive .

Je suppose que ce tableau est également utile: page de support du compilateur cppreference

Les détails du support peuvent être trouvés sur le site web de gnu. Je me souviens qu’il existe environ une douzaine de normes que gcc ne s’applique pas pour le c99. Quoi qu’il en soit, avoir le support de c99 dans gcc nécessite simplement un paramètre simple –std = c99