Question

Pour de nombreuses questions, la réponse semble être trouvée dans "le standard". Cependant, où trouvons-nous cela? De préférence en ligne.

Googler peut parfois sembler futile, surtout pour les standards C, car ils sont noyés dans le flot de discussions sur les forums de programmation.

Pour commencer, puisque ce sont ceux que je recherche en ce moment, où existe-t-il de bonnes ressources en ligne pour:

  • C89
  • C99
  • C11
  • C ++ 98
  • C ++ 03
  • C ++ 11
  • C ++ 14
Était-ce utile?

La solution

Versions PDF de la norme

À partir du 1er septembre 2014, les meilleurs emplacements par prix pour les documents standard C et C ++ au format PDF sont:

Vous ne pouvez généralement pas obtenir les anciennes révisions d'une norme (n'importe quelle norme) directement auprès des organismes de normalisation peu de temps après la publication d'une nouvelle édition de la norme. Ainsi, il sera difficile de trouver des normes pour C89, C90, C99, C ++ 98, C ++ 03 auprès d'un organisme de normalisation. Si vous avez besoin d’une ancienne révision d’une norme, cochez Techstreet l'une des sources possibles. Par exemple, il peut toujours fournir la version canadienne de la norme canadienne CAN / CSA-ISO / IEC 9899: 1990, moyennant un supplément.

Versions électroniques non PDF de la norme

Imprimer les versions de la norme

Des copies imprimées des normes sont disponibles auprès des organismes nationaux de normalisation et sont ISO , mais elles sont très onéreuses.

Si vous souhaitez obtenir une copie papier de la norme C90 à un prix nettement inférieur, vous pourrez peut-être trouver une copie bon marché de Le livre de Herb Schildt La norme ANSI annotée sur Amazon , qui contient le texte actuel de la norme (utile ) et commentaire sur le standard (moins utile).

Les normes C99 et C ++ 03 sont disponibles sous forme de livre auprès de Wiley et du BSI (British Standards Institute):

Version préliminaire du comité de normalisation

Le brouillon des futures normes est souvent disponible sur les sites Web des comités:

Notez que ces documents ne sont pas identiques à la norme, bien que les versions juste avant les réunions qui décident d’une norme soient généralement très proches de celles de la norme finale. Les versions FCD (Final Committee Draft) sont protégées par mot de passe; vous devez faire partie du comité des normes pour les obtenir.

Cependant, à mon avis, même si les versions provisoires sont très proches des versions finales ratifiées des normes, vous devriez vraiment obtenir une copie des documents eux-mêmes & # 8212; surtout si vous envisagez de les citer comme références. Bien sûr, les étudiants affamés devraient aller de l'avant et utiliser les brouillons s'ils sont à court d'argent.

Il semble que si vous êtes prêt et en mesure d’attendre quelques mois après la ratification d’une norme, recherchez "INCITS / ISO / IEC". au lieu de " ISO / IEC " lorsque vous recherchez un standard est la clé. De cette façon, j'ai pu trouver le standard C ++ 11 à un prix raisonnable et maintenant le standard C11. Ainsi, à titre d’exemple, vous recherchez "INCITS / ISO / IEC 9899: 2011". au lieu de & ISO; CEI 9899: 2011 " sur boutique en ligne.ansi.org et vous trouverez la version PDF à un prix raisonnable.

Le site https://wg21.link/ fournit des liens URL courts vers le brouillon actuel et le brouillon C ++. normes et documents des commissions:

La version actuelle de la norme est gérée en tant que sources LaTeX dans Github . Ces sources peuvent être converties en HTML à l’aide de cxxdraft-htmlgen . Les sites suivants conservent les pages HTML ainsi générées:

Tim Song gère également les versions HTML et PDF générées des serveurs TS Networking et Ranges TS <. / p>

Autres conseils

Online versions of the standard can be found:

Working Draft, Standard for Programming Language C++

The following all draft versions of the standard:
All the following are freely downloadable
2019-03-15: N4810 git
2019-01-21: N4800 git
2018-11-26: N4791 git
2018-10-08: N4778 git
2018-07-07: N4762 git
2018-05-07: N4750 git
2018-04-02: N4741 git
2018-02-12: N4727 git
2017-11-27: N4713 git
2017-10-16: N4700 git
2017-07-30: N4687 git

This seems to be the new standard:
These version requires Authentication
2017-03-21: N4660 is the C++17 Draft Standard

The following all draft versions of the standard:
All the following are freely downloadable
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

This seems to be the old C++14 standard:
These version requires Authentication
2014-10-07: N4140 git Essentially C++14 with minor errors and typos corrected
2014-09-02: N4141 git Standard C++14
2014-03-02: N3937
2014-03-02: N3936 git

The following all draft versions of the standard:
All the following are freely downloadable
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 Essentially C++11 with minor errors and typos corrected

This seems to be the old C++11 standard:
This version requires Authentication
2011-04-05: N3291 C++11 (Or Very Close)

The following all draft versions of the standard:
All the following are freely downloadable
2011-02-28: N3242 (differences from N3291 very minor)
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

This seems to be the old C++03 standard:
All the below versions require Authentication
2004-11-05: N1733
2004-07-16: N1655 Unofficial
2004-02-07: N1577 C++03 (Or Very Close)
2001-09-13: N1316 Draft Expanded Technical Corrigendum
1997-00-00: N1117 Draft Expanded Technical Corrigendum

The following all draft versions of the standard:
All the following are freely downloadable
1996-00-00: N0836 Draft Expanded Technical Corrigendum
1995-00-00: N0785 Working Paper for Draft Proposed International Standard for Information Systems - Programming Language C++

Other Interesting Papers:

2019 / 2018 / 2017 / 2016 / 2015 / 2014 / 2013 / 2012 / 2011

C99 is available online. Quoted from www.open-std.org:

The lastest publically available version of the standard is the combined C99 + TC1 + TC2 + TC3, WG14 N1256, dated 2007-09-07. This is a WG14 working paper, but it reflects the consolidated standard at the time of issue.

Draft Links:

C++11 (+editorial fixes): N3337 HTML, PDF

C++14 (+editorial fixes): N4140 HTML, PDF

C11 N1570 (text)

C99 N1256

Drafts of the Standard are circulated for comment prior to ratification and publication.

Note that a working draft is not the standard currently in force, and it is not exactly the published standard

You might find the draft international standard for C++0x useful.

ISO standards cost money, from a moderate amount (for a PDF version), to a bit more (for a book version).

While they aren't finalised however, they can usually be found online, as drafts. Most of the times the final version doesn't differ significantly from the last draft, so while not perfect, they'll suit just fine.

The C99 and C++03 standards are available in book form from Wiley:

Plus, as already mentioned, the working draft for future standards is often available from the committee websites:

The C-201x draft is available as N1336, and the C++0x draft as N3225.

The ISO C and C++ standards are bloody expensive. On the other hand, the INCITS republishes them for a lot less. http://www.techstreet.com/ seems to have the PDF for $30 (search for INCITS/ISO/IEC 14882:2003).

Hardcopy versions are available, too. Look for the British Standards Institute versions, published by Wiley.

The text of a draft of the ANSI C standard (aka C.89) is available online. This was standardized by the ANSI committee prior to acceptance by the ISO C Standard (C.90), so the numbering of the sections differ (ANSI sections 2 through 4 correspond roughly to ISO sections 5 through 7), although the content is (supposed to be) largely identical.

The actual standards documents may not be the most useful. Most compilers do not fully implement the standards and may sometimes actually conflict. So the compiler documentation that you would already have will be more useful. Additionally, the documentation will contain platform-specific remarks and notes on any caveats.

Although not an actual standard, there is an amendment to ISO C (C89/90) called C94/95, or Normative Addendum 1. It was integrated into C99, although some compilers such as Clang allow you to specifiy -std=c94 on the command line. ISO/IEC 9899:1990/Amd 1:1995 can be purchased for a hefty price from SAI GLOBAL (PDF or hard copy).

A summary of the document can be found here.

When the (then draft) ANSI C Standard was being considered for adoption of an International Standard in 1990, there were several objections because it didn't address internationalization issues. Because the Standard had already been several years in the making, it was agreed that a few changes would be made to provide the basis (for example, the functions in subclause 7.10.7 were added), and work would be carried out separately to provide proper internationalization of the Standard. This work has culminated in Normative Addendum 1.

Normative Addendum 1 embodies C's reaction to both the limitations and promises of international character sets. Digraphs and the header were meant to improve the appearance of C programs written in national variants of ISO 646 without, e.g., { or } characters. On the other end of the spectrum, the facilities connected to and extend the old Standard's barely adequate basis into a complete and consistent set of utilities for handling wide characters and multibyte strings.

This document summarizes Normative Addendum 1. It is intended to quickly inform readers who are already familiar with the Standard; it does not, and cannot, introduce the complex subject matter behind NA1, nor can it replace the original document as a reference manual. (Nevertheless, it tries to be as accurate as possible, and its author would like to hear about any errors or omissions.)

http://c0x.coding-guidelines.com/ contains a searchable, HTML-based version of the C standard. Actually, a slightly modified version:

This web site contains a modified version of N1256. It includes wording that has been deleted from C99 (i.e., in struck through form) and wording that does used to appear in C99 (i.e., in underlined form).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top