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


394

많은 질문에 대한 답은 "표준"에서 찾을 수 있습니다. 그러나 어디서 찾을 수 있습니까? 온라인으로하는 것이 좋습니다.

인터넷 검색은 프로그래밍 포럼에 대한 토론으로 인해 익사하기 때문에 때로는 C 표준에 대해 때로는 쓸데없는 느낌을 줄 수 있습니다.

이것들을 시작하려면, 지금 내가 찾고있는 것들이기 때문에 좋은 온라인 리소스는 어디에 있습니까?

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

4
MSO에 대한 논의에 주목하십시오 . 이 질문에 대한 답변은 C 및 C ++ 프로그래머에게 유용합니다. 답변을 공개 한 후에는 이미 승인 된 C ++ 2014 표준이 있기 때문에 공개 된 상태로 두어야합니다.
Jonathan Leffler

답변:


439

표준의 PDF 버전

2014 년 9 월 1 일 현재 PDF로 작성된 C 및 C ++ 표준 문서의 가격 별 최적 위치는 다음과 같습니다.

표준의 새 개정판이 출시 된 직후 표준 기관에서 직접 표준 (모든 표준)의 이전 개정을 얻을 수 없습니다. 따라서 C89, C90, C99, C ++ 98, C ++ 03에 대한 표준은 표준 기관에서 구입하기가 어렵습니다. 표준 개정판이 필요한 경우 Techstreet 를 가능한 소스로 확인하십시오 . 예를 들어, 캐나다 버전의 CAN / CSA-ISO / IEC 9899 : 1990 표준을 PDF로 제공하여 유료로 제공 할 수 있습니다.

비 PDF 전자 버전의 표준

표준 버전 인쇄

표준의 인쇄본은 국가 표준 기관과 ISO 에서 구할 수 있지만 비용이 많이 듭니다.

위보다 훨씬 적은 돈을 위해 C90 표준의 하드 카피를 원하는 경우에, 당신의 싼 사용 사본을 찾을 수 있습니다 허브 Schildt 사용자 의 책 주석이 달린 ANSI 표준 에서 아마존 (유용) 표준의 실제 텍스트를 포함, 표준에 대한 논평 (유용하지 않음-여러 가지 위험하고 오해의 소지가있는 오류가 포함됨)

C99 및 C ++ 03 표준은 Wiley 및 BSI (British Standards Institute)에서 책 형태로 제공됩니다.

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

미래 표준에 대한 실무 초안은 종종위원회 웹 사이트에서 구할 수 있습니다.

현재 또는 이전의 C / C ++ 표준에서 초안을 얻으려면 인터넷에서 무료로 사용할 수있는 것이 있습니다.

C의 경우 :

C ++의 경우 :

표준을 결정하는 회의 직전의 버전은 일반적으로 최종 표준에있는 것과 매우 유사하지만 이러한 문서는 표준과 동일하지 않습니다. FCD (최종위원회 초안) 버전은 비밀번호로 보호됩니다. 이를 얻기 위해서는 표준위원회에 있어야합니다.

초안 버전이 최종 비준 된 표준 버전과 매우 유사하더라도이 게시물의 편집자 중 일부는 실제 문서의 사본을 구할 것을 강력히 권고합니다 (특히 참조로 인용 할 계획 인 경우). 물론, 굶주린 학생들은 현금으로 묶여 있다면 초안을 사용해야합니다.


표준 비준 후 몇 개월을 기꺼이 기다릴 수 있다면 표준을 찾을 때 "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 은 또한 생성 된 HTML 및 PDF 버전의 네트워킹 TS 및 범위 TS를 유지 관리합니다.


60
Schildt의 책의 문제점은 그의 논평이 그가 언급 한 표준을 심각하게 평가 절하한다는 것입니다.
sbi

57
매우 나쁜 책 추천 (Herb Schildt 's) : 다음을 참조하십시오 : lysator.liu.se/c/schildt.html
Wiz

11
나는 리뷰를 알고있다-나는이 책을 표준을 매우 저렴하게 얻을 수있는 가능한 방법으로 만 언급한다. 그러나 사람들은 리뷰에 대해서도 알아야한다고 생각합니다. 저렴한 표준 하드 카피 (내가하는 일)를 원한다면 책의 주석 부분을 무시하는 것이 좋습니다.
Michael Burr

37
Schildt의 책 (인쇄본이 아닌 것 같습니다)은 실제 표준의 인쇄본보다 훨씬 저렴했습니다. 가격 차이는 주석의 값을 반영하는 것이 좋습니다. 이 책의 모든 사본에는 Clive DW Feather의 The Annotated Annotated C Standard 인쇄물이 첨부되어야합니다 . (Schildt의 책에서 일부 소개 자료가 누락되었습니다.)
Keith Thompson

12
@MichaelBurr, 모든 표준은 www.open-std.org에서 무료로 찾을 수 있습니다. 대답이 수락되었으므로 무료 링크로 변경하는 방법은 무엇입니까?
Shahbaz

429

표준의 온라인 버전을 찾을 수 있습니다.

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

다음의 모든 표준 초안 버전 :
다음은 모두 무료로 다운로드
할 수 있습니다 (이 중 많은 것은이 주요 GitHub 링크 에서 찾을 수 있습니다)
2020-01-14 : N4849 git
2019-11-27 : N4842 git
2019-10-08 : N4835 git
2019-08-15 : N4830 git
2019-06-17 : N4820 git
2019-03-15 : N4810 git
2019-01-21 : N4800 git
2018-11-26 : N4791 git
2018-10-08 : N4778 git
2018-07-07 : N4762 자식
2018-05-07 :N4750 자식
2018-04-02 : N4741 자식
2018-02-12 : N4727 자식
2017-11-27 : N4713 자식
2017-10-16 : N4700 자식
2017-07-30 : N4687 자식

이것은 새로운 표준 인 것 같습니다 :
이 버전에는 인증이 필요합니다
2017-03-21 : N4660 은 C ++ 17 초안 표준입니다

다음의 모든 표준 초안 버전 :
다음은 모두 무료로 다운로드 가능
2017-03-21 : N4659 git
2017-02-06 : N4640 git
2016-11-28 : N4618 git
2016-07-12 : N4606 git
2016-05 -30 : N4594 자식
2016-03-19 : N4582 자식
2015-11-09 : N4567 자식
2015-05-22 : N4527 자식
2015-04-10 : N4431 자식
2014-11-19 : N4296 자식

이것은 오래된 C ++ 14 표준 인 것 같습니다 :
이 버전에는 인증
2014-10-07이 필요합니다: N4140 git 기본적으로 약간의 오류와 오타가있는 C ++ 14
2014-09-02 : N4141 git 표준 C ++ 14
2014- 03-02 : N3937
2014-03-02 : N3936 자식

다음은 표준의 모든 초안 버전을 다음 :
다음의 모든 자유롭게 다운로드 할 수 있습니다
: 2013년 10월 13일는 N3797은 이눔
2013년 5월 16일를 : N3691
2013-05-15 : N3690
2012-11-02 : N3485
2012-02-28 : N3376
2012-01-16 : N3337 git 기본적으로 작은 오류와 오타가 수정 된 C ++ 11

이것은 오래된 C ++ 11 표준 인 것 같습니다 :
이 버전에는 인증이 필요합니다
2011-04-05 : N3291 C ++ 11 (또는 매우 닫기)

다음은 표준의 모든 초안 버전을 다음 :
다음의 모든 자유롭게 다운로드 할 수 있습니다
: 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 2007-08-06 : N2369 2007-06-25 : N2315 2007 -05-07 : N2284
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 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-00 : N1117 초안 확장 기술 강의

다음은 표준의 모든 초안 버전을 다음 :
다음의 모든 자유롭게 다운로드 할 수 있습니다
1996-00-00 : N0836의 초안 확장 된 기술 정오표
강령 1995-00-00 : N0785 초안에서 제안 된 국제 표준 정보 시스템 표준-프로그래밍 언어 C ++

다른 흥미로운 논문 :

(2020) / 2019 년 / 2018 년 / 2017 년 / (2016) / 2015 년 / 2014 년 / 2013 년 / 2012 년 / 2011


1
링크가 어떤 표준을 사용하는지 언급하고 싶을 수도 있습니다! C11 표준 추가 : open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
Shahbaz

@ Shahbaz : C 코드의 모든 사본에 익숙하지 않습니다 (C 코드를 작성하지 않기 때문에 (C ++ 만 해당)). C 언어를 명시 적으로 다루는 자체 답변을 시작하거나 아래 답변 중 하나를 편집 할 수 있습니다 (이 아래의 답변 참조).
Martin York

17
ISO 워킹 그룹 21 보다 지속적으로 최신 목록을 유지하기 위해 +1 .
Lundin

5
목록에 +1; 모든 초안을 git 저장소 github.com/cplusplus/draft 로 사용할 수 있다는 점만 추가하십시오 . 당신은 아마 isocpp.org/std/the-standard에
pepr

@ShafikYaghmour : 잠그는 것처럼 보입니다 (일반적으로 공식 출시를 의미 함). 인증이 필요한 버전에 대한 링크로 업데이트했습니다 (예 : 비용을 지불).
Martin York


26

초안 링크 :

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

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

C11 N1570 ( 텍스트 )

C99 N1256

표준의 초안 은 비준 및 출판 전에 의견을 전달하기 위해 배포됩니다.

참고 작업 초안 힘 현재 표준이 아니며, 정확히 게시 된 표준 아니라고


"N1169"링크는 몇 가지 결함 보고서가 포함 된 4 페이지짜리 문서로 연결됩니다. C ++ (또는 다른 표준)의 초안이 아닙니다.
Gareth McCaughan

이 답변은 각 주요 릴리스의 최신 초안이 무엇인지 명확하게 해주므로이 답변이 마음에 듭니다.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功


12

ISO 표준은 적당량 (PDF 버전의 경우)에서 조금 (도서 버전의 경우)까지 비용이 많이 듭니다.

그러나 마무리되지는 않았지만 일반적으로 초안으로 온라인에서 찾을 수 있습니다. 대부분의 경우 최종 버전은 마지막 초안과 크게 다르지 않으므로 완벽하지는 않지만 적합합니다.


7

C99 및 C ++ 03 표준은 Wiley에서 책 형태로 제공됩니다.

또한 이미 언급했듯이 미래 표준에 대한 실무 초안은 종종위원회 웹 사이트에서 구할 수 있습니다.

C-201x 초안은 N1336으로 , C ++ 0x 초안은 N3225사용할 수 있습니다.


1
Wiley의 C 표준 인쇄 버전에 대한 참고 사항 : C89 / 90이 아니라 C99 표준입니다.
Michael Burr

4

ISO C 및 C ++ 표준은 피가 비싸다. 반면에, INCITS는 그것들을 훨씬 적게 재 공개합니다. http://www.techstreet.com/ 의 PDF 가격은 $ 30입니다 (INCITS / ISO / IEC 14882 : 2003 검색).

하드 카피 버전도 제공됩니다. Wiley에서 발행 한 영국 표준 협회 (British Standards Institute) 버전을 찾으십시오.


현재 techstreet.com의 C ++ 2003 표준은 US $ 30, PDF 형식은 US $ 403입니다.
Keith Thompson

Techstreet와의 링크에 감사드립니다. ANSI.org의 웹 샵은 C11 표준 ( "보안"이유로 신용 카드 거부, 즉 타당한 이유가 없음)을 판매하지 않았지만 Techstreet에서 동일한 가격으로 동일한 가격으로 구매하면 매끄럽고 걸다.
Arto Bendiken

4

실제 표준 문서는 가장 유용하지 않을 수 있습니다. 대부분의 컴파일러는 표준을 완전히 구현하지는 않으며 실제로 충돌 할 수 있습니다. 따라서 이미 가지고있는 컴파일러 문서가 더 유용 할 것입니다. 또한 설명서에는 플랫폼 별 설명과주의 사항이 포함되어 있습니다.


24
컴파일러 문서는 중요하지만 구현을 알기보다는 언어를 아는 것이 훨씬 더 많습니다.
Spidey

2
실제 표준을 사용하면 컴파일러에서 버그를 찾아 버그를 신고하거나 버그 보고서를 제출하거나 IRC 룸에 들어가서이를 해결할 수있는 사람과 대화함으로써 표준을 더 잘 따르도록 도울 수 있습니다.
hdante

3
@hdante-절대적으로. 표준 자체가 이상적인 경우 공급 업체의 호환성을 요구할 수 있습니다. @ / all-여기서는 표준이 유용하지 않다고 말하려는 의도가 없었습니다 (FYI, 표준에서 먼저 시작한 접근 방식은 과거에 취해 온 접근법입니다). 희망적으로 표준과 일치합니다.
Kris Kumler

6
컴파일러 문서는 어쨌든 표준에서 다루는 내용을 생략하는 경향이 있습니다.
SamB

4

ANSI C 표준 초안 (일명 C.89) 의 텍스트는 온라인으로 제공됩니다. 이는 ISO C 표준 (C.90)에 의해 승인되기 전에 ANSI위원회에 의해 표준화되었으므로 섹션의 번호는 달라집니다 (ANSI 섹션 2-4는 대략 ISO 섹션 5-7에 해당). 동일하게).


정말 마지막 초안입니까? 내가 아는 한 가지 차이점은이 초안이 tm_sec의 범위를으로 지정하는 [0, 60]반면 C90 (잘못된)[0, 61]
Cubbi

@Cubbi, 개인적으로 증명할 수 없으므로 문구를 수정했습니다. 감사.
jxh

@Cubbi : 그는 그것이 ANSI 표준 의 마지막 초안이라고 말했습니다 . ISO WG의 누군가가 혼란스러워 1 년 안에 2 초의 도약이 같은 순간에 일어날 수도 있다고 생각했습니다 . 또는 POSIX에서 오류가 발생했습니다. C99와 일치하도록 수정했습니다.
SamB

K & R 2nd Ed. 된다 (ANSI C) 되지 실제 최종 표준에 기초하여, 즉 지정하지 tm_sec이다 (0, 61). 나는 그것이 윤초라고 생각했다.
veganaiZe

@veganaiZe 윤초를 허용하는 범위는 [0, 60]입니다 (그렇지 않으면 [0, 59]). [0, 61]은 (는) 같은 시간에 두 번의 윤초를 할 수 있음을 암시하는 오류입니다 (그렇지 않습니다).
Keith Thompson

2

실제 표준은 아니지만 C94 / 95 또는 Normative Addendum 1이라고하는 ISO C (C89 / 90)가 개정되었습니다. Clang 과 같은 일부 컴파일러를 사용하면 -std=c94명령 줄 에서 지정할 수 있지만 C99에 통합되었습니다 . ISO / IEC 9899 : 1990 / Amd 1 : 1995는 SAI GLOBAL (PDF 또는 하드 카피) 에서 대량으로 구입할 수 있습니다 .

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

1990 년에 (초안) ANSI C 표준이 국제 표준 채택을 고려할 때 국제화 문제를 다루지 않았기 때문에 몇 가지 반대 의견이있었습니다. 이 표준은 이미 몇 년 동안 만들어 졌기 때문에 기초를 제공하기 위해 몇 가지 변경이 이루어지고 (예 : 7.10.7의 기능이 추가됨), 제공하기 위해 별도의 작업이 수행 될 것에 동의했다. 표준의 적절한 국제화. 이 작업은 규범 부록 1에서 정점에 이르렀습니다.

Normative Addendum 1은 국제 캐릭터 세트의 한계와 약속에 대한 C의 반응을 구현합니다. 그래프와 헤더는 {또는} 문자없이 ISO 646의 국가 변형으로 작성된 C 프로그램의 모양을 개선하기위한 것입니다. 스펙트럼의 다른 쪽 끝에서, 시설들은 구 표준의 간신히 적절한 근거에 연결되고 넓은 문자 및 멀티 바이트 문자열을 처리하기위한 완전하고 일관된 유틸리티 세트로 연결됩니다.

이 문서는 Normative Addendum 1을 요약 한 것입니다.이 표준은 이미 표준에 익숙한 독자에게 신속하게 알리기위한 것입니다. NA1 뒤에있는 복잡한 주제를 소개하지 않으며, 참조 할 수 없으며 원본 문서를 대체 할 수도 없습니다. (그러나 그럼에도 불구하고 가능한 한 정확하려고 노력하며 저자는 오류나 누락에 대해 듣고 싶습니다.)


-6

http://c0x.coding-guidelines.com/ 에는 검색 가능한 HTML 기반 버전의 C 표준이 포함되어 있습니다. 실제로 약간 수정 된 버전 :

이 웹 사이트에는 수정 된 버전의 N1256이 포함되어 있습니다. 여기에는 C99에서 삭제 된 (즉, 형식을 통해) 단어와 C99 (즉, 밑줄이있는 형식)로 표시되는 단어가 포함됩니다.


2
대부분의 페이지가 비어 있으므로 웹 사이트는 쓸모가 없습니다.
Nisse Engström

이 웹 사이트는 실제로 완전 쓰레기입니다.
MD XF
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.