Où puis-je trouver les documents standard C ou c++?
Pour de nombreuses questions, la réponse semble être trouvé dans "la norme". Cependant, où allons-nous trouver? De préférence en ligne.
googler peut parfois sembler futile, surtout pour les standards c/" class="blnk">C, car ils sont noyés dans le flot de discussions sur les forums de programmation.
pour commencer, puisque ce sont ceux que je cherche en ce moment, où sont les bonnes ressources en ligne pour:
- C89
- c99
- C11
- C++98
- c++03
- C++11
- C++14
12 réponses
PDF versions de la norme
à partir du 1er septembre 2014, les meilleurs emplacements par prix pour les documents de normes C et C++ en PDF sont:
- C++17-ISO / IEC 14882: 2017: $ 116 from ansi.org
- C++14 – ISO / IEC 14882: 2014: $ 90 NZD (environ $60 US) from Standards New Zealand
- C++11-ISO / IEC 14882: 2011:
60 $ de ansi.org$ 60 de Techstreet - C++03-ISO 14882:2003:
$30 à partir de ansi.org$ 48 de SAI Global -
C++98 – ISO/CEI 14882:1998: $90 NZD (environ $60 US) from Standards New Zealand
-
C17 / C18 – ISO / IEC 9899: 2018: 232 $ de ansi.org / N2176 / c17_updated_proposed_fdis.PDF draft à partir de novembre 2017
- C11-ISO / CEI 9899:2011:
$30$60 à partir de ansi.org / WG14 draft version N1570 - C99-ISO 9899:1999:
$30$60 à partir de ansi.org / WG14 draft version N1256 - C90-AS 3955-1991:
141 $ de ansi.org175 $de Techstreet (la version australienne de C90, identique à la norme ISO 9899:1990) - C90-9899: 1990 version imprimée disponible auprès de SAI Global (88 $ + frais d'expédition)
vous ne pouvez généralement pas obtenir d'anciennes révisions d'une norme (aucune norme) directement des organismes de normalisation peu de temps après qu'une nouvelle édition de la norme est publiée. Ainsi, les normes C89, C90, C99, C++98, C++03 seront difficiles à trouver à l'achat auprès d'un organisme de normalisation. Si vous avez besoin d'une ancienne révision d'un standard, cochez Techstreet comme source possible. Par exemple, elle peut toujours fournir la version canadienne de la norme CAN/CSA-ISO/IEC 9899:1990 en format PDF, moyennant des frais.
Imprimer versions de la norme
des exemplaires imprimés des normes sont disponibles auprès des organismes nationaux de normalisation et ISO mais ils sont très coûteux.
si vous voulez une copie papier de la norme C90 pour beaucoup moins d'argent que ci-dessus, vous pouvez être en mesure de trouver une copie utilisée bon marché de Herb Schildt 's book The Annotated ANSI Standard à Amazon , qui contient le texte réel de la norme (utile) et des commentaires sur la norme (moins utile).
les standards C99 et c++03 sont disponibles sous forme de livre auprès de Wiley et le BSI (British Standards Institute):
- C++03 Standard on Amazon
- Standard C99 sur Amazon
projets de versions du Comité de normalisation
Le projet de travail pour de futures normes est souvent disponible sur les sites internet du comité:
notez que ces documents ne sont pas les mêmes que la norme, bien que les versions juste avant les réunions qui décident d'une norme sont généralement très proches de ce qui se trouve dans la norme finale. Les versions finales du Comité des normes sont protégées par un mot de passe; vous devez faire partie du Comité des normes pour les obtenir.
cependant, dans mon de l'avis, même si les versions provisoires peuvent être très proches des versions finales ratifiées des normes, vous devriez vraiment obtenir une copie des documents actuels - surtout si vous prévoyez de les citer comme références. Bien sûr, les étudiants affamés devraient aller de l'avant et utiliser les traites si vous êtes à court d'argent.
il semble que, si vous êtes disposé et capable d'attendre quelques mois après la ratification d'une norme, de rechercher "INCITS / ISO / IEC "au lieu de" ISO/IEC " lors de la recherche d'une norme est la clé. De cette façon, j'ai pu trouver la norme C++11 à un prix raisonnable et maintenant la norme C11. Ainsi, à titre d'exemple, vous recherchez "INCITS/ISO / IEC 9899: 2011" au lieu de "ISO / IEC 9899: 2011" sur webstore.ansi.org et vous trouverez la version PDF à un prix raisonnable.
les versions en ligne de la norme peuvent être trouvées:
, document de Travail, Standard pour la Programmation en Langage C++
tous les projets de norme :
Tous les suivants sont téléchargeables gratuitement
2018-02-12: N4727 git
2017-11-27: N4713 git
2017-10-16: N4700 git
2017-07-30: N4687 git
cela semble être la nouvelle norme:
Cette version nécessite une authentification
2017-03-21: N4660 est le projet de norme C++17
tous les projets de norme :
Tous les suivants sont téléchargeables gratuitement
2017-03-21: N4659 git
2017-02-06: N4640 git
2016-11-28: N4618 git
2016-07-12: N4606 git
2016-05-30: N4594 git
2016-03-19: N4582 git
2015-11-09: N4567 git
2015-05-22: N4527 git
2015-04-10: N4431 git
2014-11-19: N4296 git
cela semble être l'ancienne norme C++14 :
Cette version nécessite une authentification
2014-10-07: N4140 git Essentiellement en C++14 avec de petites erreurs et de fautes de frappe corrigées
2014-09-02: N4141 git Standard C++14
2014-03-02: N3937
2014-03-02: N3936 git
tous les projets de norme :
Tous les suivants sont téléchargeables gratuitement
2013-10-13: N3797 git
2013-05-16: N3691
2013-05-15: N3690
2012-11-02: N3485
2012-02-28: N3376
2012-01-16: N3337 git Essentiellement en C++11 avec de petites erreurs et de fautes de frappe corrigées
cela semble être l'ancienne norme C++11 :
Cette version nécessite une authentification
2011-04-05: N3291 C++11 (Ou Très Proche)
tous les projets de norme :
Tous les suivants sont téléchargeables gratuitement
2011-02-28: N3242 (différences par rapport à n3291 très mineures)
2010-11-27: N3225
2010-08-21: N3126
2010-03-29: N3090
2010-02-16: N3035
2009-11-09: N3000
2009-09-25: N2960
2009-06-22: N2914
2009-03-23: N2857
2008-10-04: N2798
2008-08-25: N2723
2008-06-27: N2691
2008-05-19: N2606
2008-03-17: N2588
2008-02-04: N2521
2007-10-22: N2461
2007-08-06: N2369
2007-06-25: N2315
2007-05-07: N2284
2006-11-03: N2134
2006-04-21: N2009
2005-10-19: N1905
2005-04-27: N1804
cela semble être l'ancienne norme C++03:
Toutes les versions ci-dessous nécessitent une authentification
2004-11-05: N1733
2004-07-16: N1655 Unofficial
2004-02-07: N1577 C++03 (Ou Très Proche)
2001-09-13: N1316 Draft Expanded Rectificatif Technique
1997-00-00: N1117 Projet De Rectificatif Technique Élargi
tous les projets de norme :
Tous les suivants sont téléchargeables gratuitement
1996-00-00: N0836 Projet Élargi Rectificatif Technique
1995-00-00: N0785 Document de Travail pour le Projet Proposé Norme internationale pour les systèmes D'Information-langage de programmation C++
Autres Documents Intéressants:
C99 est , disponible en ligne . Tiré de www.open-std.org :
la dernière version de la norme disponible au public est la combined C99 + TC1 + TC2 + TC3, WG14 N1256 , dated 2007-09-07. C'est un WG14 document de travail, mais il reflète les états à la norme l'heure de la délivrance.
Projet De Liens:
C++11 (+corrections éditoriales): N3337 HTML , PDF
C++14 (+corrections éditoriales): N4140 HTML , PDF
C99 N1256
Brouillons de la Norme sont diffusés pour commentaires avant la ratification et à la publication.
Note qu'un projet de travail n'est pas la norme actuellement en vigueur, et ce n'est pas exactement la norme publiée
vous pourriez trouver utile le projet de norme internationale pour C++0x.
les normes ISO coûtent de l'argent, à partir d'une quantité modérée (version PDF), à un peu plus (pour une version du livre).
bien qu'ils ne soient pas finalisés cependant, ils peuvent généralement être trouvés en ligne, sous forme de brouillons. La plupart du temps, la version finale ne diffère pas de manière significative de la dernière version, donc bien qu'elle ne soit pas parfaite, elle conviendra parfaitement.
C99 et C++03 standards sont disponibles sous forme de livre de Wiley:
en Plus, comme déjà mentionné, le projet de travail pour les futures normes est souvent disponible sur les sites Web de la Commission:
Le C-201x projet est disponible en tant que N1336 , et le C++0x projet N3225 .
les standards ISO C et C++ sont sacrément chers. D'un autre côté, les incisions les republient pour beaucoup moins. http://www.techstreet.com / semble avoir le PDF pour $ 30 (search for INCITS/ISO / IEC 14882:2003).
Des versions sur papier desont également disponibles. Cherchez les versions du British Standards Institute, publiées par Wiley.
Les standards actuels documents peuvent ne pas être les plus utiles. La plupart des compilateurs n'appliquent pas entièrement les normes et peuvent parfois même entrer en conflit. Ainsi, la documentation du compilateur que vous auriez déjà sera plus utile. De plus, la documentation contiendra des remarques et des notes propres à la plate-forme sur les mises en garde éventuelles.
Le texte d'une le projet de la C ANSI standard (aka C. 89) est disponible en ligne. Cette norme a été normalisée par le Comité de L'ANSI avant d'être acceptée par la norme ISO C (c. 90), de sorte que la numérotation des sections diffère (les sections 2 à 4 de l'ANSI correspondent à peu près aux sections 5 à 7 de L'ISO), bien que le contenu soit (censé être) en grande partie identique.
bien qu'il ne s'agisse pas d'une norme proprement dite, il existe un amendement à la norme ISO c (C89/90) appelé C94/95, ou L'Addendum normatif 1. Il a été intégré dans C99, bien que certains compilateurs tels que Clang vous permettent de spécifier -std=c94
sur la ligne de commande. ISO / IEC 9899: 1990 / Amd 1:1995 peut être acheté au prix fort à partir de SAI GLOBAL (PDF ou copie papier).
Un résumé du document peut être trouvé ici .
lorsque la norme ANSI C (alors en projet) était envisagée pour adoption d'une norme internationale en 1990, il y a eu plusieurs objections parce qu'il n'a pas abordé les questions d'internationalisation. Étant donné que la norme avait déjà été élaborée il y a plusieurs années, elle a été convenu que quelques modifications seraient apportées pour fournir la base (pour par exemple, les fonctions du sous-alinéa 7.10.7 ont été ajoutées), et le être effectué séparément pour fournir de l'internationalisation de norme. Ces travaux ont abouti à l'additif 1.
Normatif à l'Addendum 1 incarne C est une réaction à la fois les limites et les les promesses de jeux de caractères internationaux. Les digraphes et le en-tête étaient destinés à améliorer l'apparence des programmes C écrit dans variantes nationales de la norme ISO 646 Sans, par exemple, {ou } caractères. Sur le l'autre extrémité du spectre, les installations connectées et étendre la base à peine adéquate de l'ancienne norme dans un ensemble complet et cohérent de utilitaires pour la manipulation de caractères larges et des cordes multibytes.
le présent document résume l'additif 1 à la norme. Il est destiné à rapidement informer les lecteurs qui sont déjà familiers avec la Norme; il n'est pas, et ne peut pas, présenter le sujet complexe qui sous-tend NA1, il ne peut pas non plus remplacer le document original en tant que Manuel de référence. (Néanmoins, il essaie d'être aussi précis que possible, et de son auteur voudrais entendre parler d'éventuelles erreurs ou omissions.)
http://c0x.coding-guidelines.com / contient une version HTML de la norme C. En fait, une version légèrement modifiée:
ce site web contient une version modifiée de N1256. Il comprend le libellé qui a été supprimé du projet de loi C-99 (c.-à-d. qui est biffé);) et le libellé utilisé dans C99 (c.-à-d. souligné forme.)