많은 질문에 대한 답은 "표준"에서 찾을 수 있습니다. 그러나 어디서 찾을 수 있습니까? 온라인으로하는 것이 좋습니다.
인터넷 검색은 프로그래밍 포럼에 대한 토론으로 인해 익사하기 때문에 때로는 C 표준에 대해 때로는 쓸데없는 느낌을 줄 수 있습니다.
이것들을 시작하려면, 지금 내가 찾고있는 것들이기 때문에 좋은 온라인 리소스는 어디에 있습니까?
- C89
- C99
- C11
- C ++ 98
- C ++ 03
- C ++ 11
- C ++ 14
- C ++ 17
많은 질문에 대한 답은 "표준"에서 찾을 수 있습니다. 그러나 어디서 찾을 수 있습니까? 온라인으로하는 것이 좋습니다.
인터넷 검색은 프로그래밍 포럼에 대한 토론으로 인해 익사하기 때문에 때로는 C 표준에 대해 때로는 쓸데없는 느낌을 줄 수 있습니다.
이것들을 시작하려면, 지금 내가 찾고있는 것들이기 때문에 좋은 온라인 리소스는 어디에 있습니까?
답변:
2014 년 9 월 1 일 현재 PDF로 작성된 C 및 C ++ 표준 문서의 가격 별 최적 위치는 다음과 같습니다.
C ++ 98 – ISO / IEC 14882 : 1998 : 뉴질랜드 표준에서 $ 90 NZD (약 $ 60)
C17 / C18 – ISO / IEC 9899 : 2018 : SAI Global의 $ 185 / INCITS / ANSI / N2176 / c17_updated_proposed_fdis.pdf에서 2017 년 11 월의 $ 116 (링크가 끊어짐, Wayback Machine N2176 참조 )
표준의 새 개정판이 출시 된 직후 표준 기관에서 직접 표준 (모든 표준)의 이전 개정을 얻을 수 없습니다. 따라서 C89, C90, C99, C ++ 98, C ++ 03에 대한 표준은 표준 기관에서 구입하기가 어렵습니다. 표준 개정판이 필요한 경우 Techstreet 를 가능한 소스로 확인하십시오 . 예를 들어, 캐나다 버전의 CAN / CSA-ISO / IEC 9899 : 1990 표준을 PDF로 제공하여 유료로 제공 할 수 있습니다.
표준의 인쇄본은 국가 표준 기관과 ISO 에서 구할 수 있지만 비용이 많이 듭니다.
위보다 훨씬 적은 돈을 위해 C90 표준의 하드 카피를 원하는 경우에, 당신의 싼 사용 사본을 찾을 수 있습니다 허브 Schildt 사용자 의 책 주석이 달린 ANSI 표준 에서 아마존 (유용) 표준의 실제 텍스트를 포함, 표준에 대한 논평 (유용하지 않음-여러 가지 위험하고 오해의 소지가있는 오류가 포함됨)
C99 및 C ++ 03 표준은 Wiley 및 BSI (British Standards Institute)에서 책 형태로 제공됩니다.
미래 표준에 대한 실무 초안은 종종위원회 웹 사이트에서 구할 수 있습니다.
현재 또는 이전의 C / C ++ 표준에서 초안을 얻으려면 인터넷에서 무료로 사용할 수있는 것이 있습니다.
C89의 PDF를 찾을 수 없지만 ISO / IEC 9899 : 1990 (C90)에 대한 아래 초안과 거의 동일합니다. 보일러 플레이트와 섹션 번호 만 다릅니다.
https://www.pdf-archive.com/2014/10/02/ansi-iso-9899-1990-1/ansi-iso-9899-1990-1.pdf
(전면 및 섹션 번호 매기기를 제외하고는 ANSI X3.159-198 (C89)과 거의 동일합니다. ANSI와 ISO / IEC 표준 간의 변환은이 문서에서 볼 수 있습니다.이 문서의 이름은 "ANSI / ISO : 9899/99 "(이것은 나중에 만들어진 표준의 올바른 이름이 아니지만"ISO / IEC 9899 : 1990 ")
http://www.lirmm.fr/~ducour/Doc-objets/ISO+IEC+14882-1998.pdf
https://cs.nyu.edu/courses/fall11/CSCI-GA.2110-003/documents/c++2003std.pdf
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf
표준을 결정하는 회의 직전의 버전은 일반적으로 최종 표준에있는 것과 매우 유사하지만 이러한 문서는 표준과 동일하지 않습니다. 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를 유지 관리합니다.
표준의 온라인 버전을 찾을 수 있습니다.
다음의 모든 표준 초안 버전 :
다음은 모두 무료로 다운로드
할 수 있습니다 (이 중 많은 것은이 주요 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
C99는 온라인 으로 제공됩니다 . www.open-std.org 에서 인용 :
가장 공개적으로 사용 가능한 표준 버전은 2007-09-07 일 C99 + TC1 + TC2 + TC3, WG14 N1256 입니다. 이 문서는 WG14 작업 용지이지만 발행 당시의 통합 표준을 반영합니다.
초안 링크 :
C ++ 11 (+ 편집 수정) : N3337 HTML , PDF
C ++ 14 (+ 편집 수정) : N4140 HTML , PDF
C99 N1256
표준의 초안 은 비준 및 출판 전에 의견을 전달하기 위해 배포됩니다.
참고 작업 초안 힘 현재 표준이 아니며, 정확히 게시 된 표준 아니라고
ISO 표준은 적당량 (PDF 버전의 경우)에서 조금 (도서 버전의 경우)까지 비용이 많이 듭니다.
그러나 마무리되지는 않았지만 일반적으로 초안으로 온라인에서 찾을 수 있습니다. 대부분의 경우 최종 버전은 마지막 초안과 크게 다르지 않으므로 완벽하지는 않지만 적합합니다.
C99 및 C ++ 03 표준은 Wiley에서 책 형태로 제공됩니다.
또한 이미 언급했듯이 미래 표준에 대한 실무 초안은 종종위원회 웹 사이트에서 구할 수 있습니다.
ISO C 및 C ++ 표준은 피가 비싸다. 반면에, INCITS는 그것들을 훨씬 적게 재 공개합니다. http://www.techstreet.com/ 의 PDF 가격은 $ 30입니다 (INCITS / ISO / IEC 14882 : 2003 검색).
하드 카피 버전도 제공됩니다. Wiley에서 발행 한 영국 표준 협회 (British Standards Institute) 버전을 찾으십시오.
실제 표준 문서는 가장 유용하지 않을 수 있습니다. 대부분의 컴파일러는 표준을 완전히 구현하지는 않으며 실제로 충돌 할 수 있습니다. 따라서 이미 가지고있는 컴파일러 문서가 더 유용 할 것입니다. 또한 설명서에는 플랫폼 별 설명과주의 사항이 포함되어 있습니다.
ANSI C 표준 초안 (일명 C.89) 의 텍스트는 온라인으로 제공됩니다. 이는 ISO C 표준 (C.90)에 의해 승인되기 전에 ANSI위원회에 의해 표준화되었으므로 섹션의 번호는 달라집니다 (ANSI 섹션 2-4는 대략 ISO 섹션 5-7에 해당). 동일하게).
[0, 60]
반면 C90 (잘못된)[0, 61]
tm_sec
이다 (0, 61)
. 나는 그것이 윤초라고 생각했다.
실제 표준은 아니지만 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 뒤에있는 복잡한 주제를 소개하지 않으며, 참조 할 수 없으며 원본 문서를 대체 할 수도 없습니다. (그러나 그럼에도 불구하고 가능한 한 정확하려고 노력하며 저자는 오류나 누락에 대해 듣고 싶습니다.)
http://c0x.coding-guidelines.com/ 에는 검색 가능한 HTML 기반 버전의 C 표준이 포함되어 있습니다. 실제로 약간 수정 된 버전 :
이 웹 사이트에는 수정 된 버전의 N1256이 포함되어 있습니다. 여기에는 C99에서 삭제 된 (즉, 형식을 통해) 단어와 C99 (즉, 밑줄이있는 형식)로 표시되는 단어가 포함됩니다.