Programing

현재 C 또는 C++ 표준 문서는 어디에서 찾을 수 있는가?

c10106 2022. 4. 29. 20:54
반응형

현재 C 또는 C++ 표준 문서는 어디에서 찾을 수 있는가?

많은 질문에 대한 해답은 "표준"에서 찾을 수 있을 것 같다.하지만, 우리는 그것을 어디서 찾을 수 있을까?온라인에서 하는 것이 좋다.

프로그래밍 포럼에 대한 토론의 홍수 속에 빠져들었기 때문에, 구글링은 때로, 특히 C 표준에 대해 다시 한번 헛된 감정을 느낄 수 있다.

시작하기 위해 현재 검색 중인 온라인 리소스 중 어디에 적합한지 알아보십시오.

  • C89
  • C99
  • C11
  • C++98
  • C++03
  • C++11
  • C++14
  • C++17

PDF 버전의 표준

을 기준으로 2014년 9월 1일 2022년 3월 PDF의 공식 C 및 C++ 표준 문서에 대한 가격별 최적 위치는 다음과 같다.

PDF가 아닌 표준 전자 버전

경고: 대부분의 표준 초안 사본은 PDF 형식으로 발행되며, 텍스트/HTML이 PDF에서 필사되었거나 자동으로 생성된 경우 오류가 발생할 수 있다.

(C++11 작업 초안의 일반 텍스트 버전을 호스팅하는 사이트에는 이러한 형식의 C++14 초안도 일부 있다.그러나 이들 중 어느 것도 최종 작업 초안인 N4140의 사본은 아니다.)

표준 버전 인쇄

표준의 인쇄본은 국가 표준 기구와 ISO에서 구할 수 있지만 매우 비싸다.

위보다 훨씬 적은 비용으로 C90 표준의 하드카피를 원한다면, 표준의 실제 텍스트(유용한)와 표준에 대한 해설(저용한 - 위험하고 오해의 소지가 있는 몇 가지 오류를 포함)을 수록한 허브 쉴트의 저서 The Annotated ANSI Standard의 값싼 중고 사본을 아마존에서 찾을 수 있을 것이다.

C99 및 C++03 표준은 Wiley와 BSI(British Standards Institute)에서 도서 형태로 이용할 수 있다.

표준 위원회 초안 버전(무료)

미래 표준을 위한 작업 초안은 위원회 웹사이트에서 종종 이용할 수 있다.

현재 또는 이전 C/C++ 표준에서 초안을 받고자 하는 경우, 인터넷에서 무료로 이용할 수 있는 몇 가지가 있다.

C의 경우:

C++의 경우:

표준을 결정하는 회의 직전 버전은 일반적으로 최종 표준에 있는 것과 매우 유사하지만, 이러한 문서는 표준과 같지 않다는 점에 유의하십시오.FCD(Final Committee Graft) 버전은 암호로 보호되며, 표준 위원회에 있어야 가져올 수 있다.

초안 버전이 최종 비준된 표준 버전과 매우 유사할 수 있지만, 이 게시물의 편집자 중 일부는 특히 참고 자료로 인용할 계획인 경우 실제 문서의 사본을 얻을 것을 강력히 권고할 것이다.물론, 굶주린 학생들은 현금이 부족하면 그 초안을 이용해야 한다.


표준 비준 후 몇 달 동안 기다릴 의지와 능력이 있다면 표준을 찾을 때 'ISO/IEC' 대신 'INCITS/ISO/IEC'를 검색하는 것이 관건인 것으로 보인다.그렇게 함으로써, 이 포스트의 편집자 중 한 명이 합리적인 가격에 C11과 C++11 표준을 찾을 수 있었다.예를 들어 webstore.ansi.org에서 "ISO/IEC 9899:2011" 대신 "INCITS/ISO/IEC 9899:2011"을 검색하면 합리적인 가격의 PDF 버전을 찾을 수 있다.


사이트 https://wg21.link/는 C++의 현재 작업 초안 및 초안 표준에 대한 짧은 URL 링크와 다음 위원회 문서를 제공한다.


표준의 현재 초안은 Github에 대한 LaTeX 출처로 유지된다.이러한 소스는 cxxdraft-htmlgen을 사용하여 HTML로 변환할 수 있다.다음 사이트는 HTML 페이지를 유지 관리하며,

Tim Song은 또한 Networking TS 및 Ranges TS의 생성된 HTML 및 PDF 버전을 유지 관리한다.

POSIX를 C 표준으로 확장

POSIX 표준(IEEE 1003.1)은 C 컴파일러를 포함하도록 호환되는 운영 체제를 요구한다.이 컴파일러는 차례로 C 표준을 준수해야 하며, POSIX의 "시스템 인터페이스" 섹션에 정의된 다양한 확장 기능도 지원해야 한다(예:off_t데이터 유형,<aio.h>머리글, 더clock_gettime()기능과_POSIX_C_SOURCE매크로)

그래서 만약 당신이 특정한 기능을 찾으려고 노력했다면, "이 기능은 C 표준이 아닌 POSIX의 일부분이다"라는 통보를 받았고, 왜 운영 체제 표준이 컴파일러 특징과 언어 확장을 의무화하고 있는지 궁금했다.이제 알겠지!

  • POSIX.1-2008 초안은 http://www.open-std.org/jtc1/sc22/open/n4217.pdf에 있다.

    POSIX.1-2008은 또한 2016년 날짜의 두 가지 기술적 코리겐다를 가지고 있다.https://pubs.opengroup.org/onlinepubs/9699919799.2016edition/에서 corrigenda를 통합한 표준의 온라인 HTML 버전이 있다. 그러나 나는 다시 한번 사이트 자체의 검색 상자가 정보를 찾는데 좋지 않은 상황을 겪었다.

  • POSIX.1-2017의 온라인 HTML 버전이 https://pubs.opengroup.org/onlinepubs/9699919799/에 있지만, 나는 그 사이트의 검색 상자 대신 구글을 사용하는 것을 추천한다.오픈 그룹 웹사이트에 따르면, "IEEE 1003.1-2017은 1003.1-2008 표준의 개정판이며, 두 가지 기술 코리젠다(as-is)"를 포함한다.리눅스페이지는 기술 코리젠다 1과 2가 적용된 POSIX.1-2008과 "기술적으로 동일하다"고 설명한다.따라서 이는 주요 개정 사항이 아니며, 이 값도 변경되지 않는다._POSIX_C_SOURCE매크로의

표준의 온라인 버전은 다음을 찾을 수 있다.

작업 초안, 프로그래밍 언어 C++ 표준

표준모든 초안 버전:
다음 모든 항목을 무료로 다운로드할 수 있음
2021-06-18: N4892
2021-03-17: N4885
2020-12-15: N4878
2020-10-18: N4868
2020-04-08: N4861

다음은 C++20 표준:
이 버전에는 인증이 필요함
2020-04-08: N4860

표준모든 초안 버전:
다음 모든 항목을 무료로 다운로드할 수 있음
(이 중 상당수는 이 주 GitHub 링크에서 찾을 수 있음)
2020-01-14: N4849
2019-11-27: N4842
2019-10-08: N4835git
2019-08-15: N4830git
2019-06-17: N4820git
2019-03-15: N4810git
2019-01-21: N4800git
2018-11-26: N4791git
2018-10-08: N4778git
2018-07-07: N4762git
2018-05-07: N4750git
2018-04-02: N4741git
2018-02-12: N4727git
2017-11-27: N4713git
2017-10-16: N4700git
2017-07-30: N4687git

이것은 구 C++17 표준이다.
이 버전에는 인증이 필요함
2017-03-21: N4660

표준모든 초안 버전:
다음 모든 항목을 무료로 다운로드할 수 있음
2017-03-21: N4659git
2017-02-06: N4640git
2016-11-28: N4618git
2016-07-12: N4606git
2016-05-30: N4594git
2016-03-19: N4582git
2015-11-09: N4567git
2015-05-22: N4527git
2015-04-10: N4431git
2014-11-19: N4296git

이것은 기존의 C++14 표준이다.
이 버전에는 인증이 필요함
2014-10-07: N4140git 본질적으로 사소한 오류와 오타가 수정된 C++14
2014-09-02: N4141git Standard C++14
2014-03-02: N3937
2014-03-02: N3936git

표준모든 초안 버전:
다음 모든 항목을 무료로 다운로드할 수 있음
2013-10-13: N3797git
2013-05-16: N3691
2013-05-15: N3690
2012-11-02: N3485
2012-02-28: N3376
2012-01-16: N3337git 본질적으로 사소한 오류와 오타가 수정된 C++11

이것은 구 C++11 표준이다.
이 버전에는 인증이 필요함
2011-04-05: N3291

표준모든 초안 버전:
다음 모든 항목을 무료로 다운로드할 수 있음
2011-02-28: N3242(N3291과의 차이가 매우 작음)
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

다음은 기존 C++03 표준:
아래의 모든 버전에는 인증이 필요함
2004-11-05: N1733
2004-07-16: N1655 비공식
2004-02-07: N1577 C++03(또는 매우 근접)
2001-09-13: N1316 기술장벽 확장 초안 초안
1997-00: N1117 확장된 기술 Corrigendum 초안

표준모든 초안 버전:
다음 모든 항목을 무료로 다운로드할 수 있음
1996-00: N0836 초안 확장 기술 Corrigendum
1995-00-00: N0785 국제정보시스템 국제표준 초안 작성 - 프로그래밍 언어 C++

기타 흥미로운 문서:

2022 / 2021 / 2020 / 2019 / 2018 / 2017 / 2016 / 2015 / 2014 / 2013 / 2012 / 2011

ANSI C 표준 초안(일명 C.89)의 본문은 온라인에서 구할 수 있다.이는 ISO C 표준(C.90)에 의해 승인되기 전에 ANSI 위원회가 표준화하였으므로, 섹션의 번호 매기는 (ANSI 섹션 2 ~ 4는 ISO 섹션 5 ~ 7에 대략 해당됨) 내용이 대체로 동일하지만, (제공된 것으로 간주됨) 차이가 있다.

초안 링크:

C++11(+편집기 수정):N3337 HTML, PDF

C++14(+편집기 수정):N4140 HTML, PDF

C11 N1570(텍스트)

C99 N1256

이 기준서의 초안은 비준과 공표에 앞서 검토의견을 받기 위해 회람된다.

작업 초안은 현재 시행 중인 표준이 아니며 정확히 발표된 표준도 아니라는 점에 유의하십시오.

C99는 온라인에서 이용할 수 있다.www.open-std.org에서 인용한 내용:

이 표준의 가장 최근에 공개적으로 사용할 수 있는 버전은 2007-09-07년 날짜의 C99 + TC1 + TC2 + TC3, WG14 N1256이다.이것은 WG14 작업용지지만, 발행 당시 통합기준을 반영한다.

ISO 표준은 적당한 양(PDF 버전의 경우)에서 조금 더 많은 양(도서 버전의 경우)에 이르는 비용이 든다.

그러나 그것들은 마무리되지 않았지만, 보통 초안으로서 온라인에서 발견될 수 있다.대부분의 경우 최종본은 지난 초안과 크게 다르지 않기 때문에 완벽하지는 않지만, 잘 어울릴 것이다.

실제 표준은 아니지만 C94/95라고 하는 ISO C(C89/90) 또는 규범적 부록 1에 대한 개정이 있다.클랑과 같은 컴파일러를 통해 특정할 수 있지만, C99에 통합되었다.-std=c94지휘 계통에서ISO/IEC 9899:1990/Amd 1:1995는 SAI GLOBAL(PDF 또는 하드 카피)에서 고액의 가격으로 구입할 수 있다.

문서의 요약은 여기에서 찾을 수 있다.

1990년 국제표준 채택을 위해 ANSI C 표준 초안이 검토되고 있을 때 국제화 문제를 다루지 않았기 때문에 몇 가지 반대가 있었다.이 기준서는 이미 제정된 지 몇 년이 되었기 때문에, 근거(예: 하위조항 7.10.7의 기능이 추가됨)를 제공하기 위해 몇 가지 변경이 이루어지며, 이 기준서의 적절한 국제화를 위해 별도로 작업을 수행하기로 합의하였다.이 일은 규범 부록 1에서 절정에 달했다.

규범적 부록 1은 국제 문자 집합의 한계와 약속 모두에 대한 C의 반응을 구체화한다.디그그래프와 헤더는 예를 들어 { 또는 }자 없이 ISO 646의 국가 변형으로 작성된 C 프로그램의 외관을 개선하기 위한 것이었다.주파수의 다른 쪽 끝에서, 구 기준서의 거의 적절하지 않은 기초를 넓은 문자와 멀티바이트 문자열을 취급하기 위한 완전하고 일관된 유틸리티 집합으로 연결 및 확장한다.

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.)

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.

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

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.

ReferenceURL : https://stackoverflow.com/questions/81656/where-do-i-find-the-current-c-or-c-standard-documents

반응형