it-swarm-vi.com

Tôi tìm tài liệu chuẩn C hoặc C ++ hiện tại ở đâu?

Đối với nhiều câu hỏi, câu trả lời dường như được tìm thấy trong "tiêu chuẩn". Tuy nhiên, chúng ta tìm thấy điều đó ở đâu? Tốt nhất là trực tuyến.

Googling đôi khi có thể cảm thấy vô ích, một lần nữa, đặc biệt là đối với các tiêu chuẩn C, vì chúng bị nhấn chìm trong cơn lũ thảo luận trên các diễn đàn lập trình.

Để bắt đầu điều này, vì đây là những thứ tôi đang tìm kiếm ngay bây giờ, nơi có các tài nguyên trực tuyến tốt cho:

  • C89
  • C99
  • C11
  • C++ 98
  • C++ 03
  • C++ 11
  • C++ 14
394
Christoffer

Phiên bản PDF của tiêu chuẩn

Kể từ ngày 1 tháng 9 năm 2014, các vị trí tốt nhất theo giá cho các tài liệu tiêu chuẩn C và C++ trong PDF là:

Bạn thường không thể nhận được các bản sửa đổi cũ của một tiêu chuẩn (bất kỳ tiêu chuẩn nào) trực tiếp từ các cơ quan tiêu chuẩn ngay sau khi phiên bản mới của tiêu chuẩn được phát hành. Do đó, các tiêu chuẩn cho C89, C90, C99, C++ 98, C++ 03 sẽ khó tìm thấy để mua từ một cơ thể tiêu chuẩn. Nếu bạn cần sửa đổi cũ của một tiêu chuẩn, hãy kiểm tra Techstreet như một nguồn có thể. Ví dụ, nó vẫn có thể cung cấp phiên bản Canada CAN/CSA-ISO/IEC 9899: 1990 trong một khoản phí.

Phiên bản điện tử không phải PDF của tiêu chuẩn

Phiên bản in của tiêu chuẩn

Bản in của các tiêu chuẩn có sẵn từ các cơ quan tiêu chuẩn quốc gia và ISO nhưng rất đắt tiền.

Nếu bạn muốn bản cứng của tiêu chuẩn C90 với số tiền ít hơn nhiều so với ở trên, bạn có thể tìm thấy một bản sao được sử dụng giá rẻ của Herb Schildt 's sách Tiêu chuẩn ANSI được chú thích tại Amazon , chứa văn bản thực tế của tiêu chuẩn (hữu ích) và bình luận về tiêu chuẩn (ít hữu ích hơn).

Các tiêu chuẩn C99 và C++ 03 có sẵn ở dạng sách từ Wiley và BSI (Viện Tiêu chuẩn Anh):

Phiên bản dự thảo của ủy ban tiêu chuẩn

Dự thảo làm việc cho các tiêu chuẩn trong tương lai thường có sẵn từ các trang web của ủy ban:

Lưu ý rằng các tài liệu này không giống với tiêu chuẩn, mặc dù các phiên bản ngay trước các cuộc họp quyết định về tiêu chuẩn thường rất gần với tiêu chuẩn cuối cùng. Các phiên bản FCD (Bản nháp cuối cùng) được bảo vệ bằng mật khẩu; bạn cần phải có mặt trong ủy ban tiêu chuẩn để có được chúng.

Tuy nhiên, theo tôi, mặc dù các phiên bản nháp có thể rất gần với các phiên bản được phê chuẩn cuối cùng của các tiêu chuẩn, bạn thực sự nên lấy một bản sao của các tài liệu thực tế - đặc biệt nếu bạn dự định trích dẫn chúng làm tài liệu tham khảo. Tất nhiên, học sinh đói nên đi trước và sử dụng các bản nháp nếu bị buộc tiền mặt.


Có vẻ như, nếu bạn sẵn sàng và có thể đợi vài tháng sau khi phê chuẩn một tiêu chuẩn, để tìm kiếm "THU NHẬP/ISO/IEC" thay vì "ISO/IEC" khi tìm kiếm một tiêu chuẩn là chìa khóa. Bằng cách này, tôi đã có thể tìm thấy tiêu chuẩn C++ 11 với giá cả hợp lý và bây giờ là tiêu chuẩn C11. Vì vậy, như một ví dụ bạn tìm kiếm "THU NHẬP/ISO/IEC 9899: 2011" thay vì "ISO/IEC 9899: 2011" trên webstore.ansi.org và bạn sẽ tìm thấy giá hợp lý PDF phiên bản.


Trang web https://wg21.link/ cung cấp các liên kết URL ngắn đến dự thảo và tiêu chuẩn dự thảo hiện hành của C++ và các giấy tờ của ủy ban:


Bản nháp hiện tại của tiêu chuẩn được duy trì dưới dạng nguồn LaTeX trên Github . Những nguồn này có thể được chuyển đổi sang HTML bằng cách sử dụng cxxdraft-htmlgen . Các trang web sau duy trì các trang HTML được tạo như vậy:

Tim Song cũng duy trì các phiên bản HTML và PDF được tạo của Mạng TS và Phạm vi TS.

399
Michael Burr

Phiên bản trực tuyến của tiêu chuẩn có thể được tìm thấy:

Bản thảo làm việc, Tiêu chuẩn cho ngôn ngữ lập trình C++

Tất cả các phiên bản nháp sau của tiêu chuẩn :
[.__.] Tất cả những thứ sau đây có thể tải xuống miễn phí
[.__.] 2019-08-15: N48git
[.__.] 2019-06-17: N482git
[.__.] 2019-03-15: N481git
[.__.] 2019-01-21: N48git
[.__.] 2018-11-26: N4791git
[.__.] 2018-10-08: N4778git
[.__.] 2018-07-07: N4762git
[.__.] 2018-05-07: N475git
[.__.] 2018-04-02: N4741git
[.__.] 2018-02-12: N4727git
[.__.] 2017-11-27: N471git
[.__.] 2017-10-16: N47git
[.__.] 2017-07-30: N4687git

Đây dường như là tiêu chuẩn mới:
[.__.] Những phiên bản này yêu cầu Xác thực
[.__.] 2017-03-21: N466 là Tiêu chuẩn Dự thảo C++ 17

Tất cả các phiên bản nháp sau của tiêu chuẩn :
[.__.] Tất cả những thứ sau đây có thể tải xuống miễn phí
[.__.] 2017-03-21: N4659git
[.__.] 2017/02-06: N464git
[.__.] 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

Đây có vẻ là tiêu chuẩn C++ 14 cũ :
[.__.] Những phiên bản này yêu cầu Xác thực
[.__.] 2014-10-07: N414git Về cơ bản C++ 14 với các lỗi nhỏ và lỗi chính tả đã được sửa
[.__.] 2014-09/02: N4141git Tiêu chuẩn C++ 14
[.__.] 2014/03/02: N3937
[.__.] 2014/03/02: N3936git

Tất cả các phiên bản nháp sau của tiêu chuẩn :
[.__.] Tất cả những thứ sau đây có thể tải xuống miễn phí
[.__.] 2013-10-13: N3797git
[.__.] 2013-05-16: N3691
[.__.] 2013-05-15: N369
[.__.] 2012-11/02: N3485
[.__.] 2012/02-28: N3376
[.__.] 2012-01-16: N3337git Về cơ bản C++ 11 với các lỗi nhỏ và lỗi chính tả đã được sửa

Đây có vẻ là tiêu chuẩn C++ 11 cũ :
[.__.] Phiên bản này yêu cầu Xác thực
[.__.] 2011-04-05: N3291 C++ 11 (Hoặc rất gần)

Tất cả các phiên bản nháp sau của tiêu chuẩn :
[.__.] Tất cả những thứ sau đây có thể tải xuống miễn phí
[.__.] 2011/02-28: N3242 (sự khác biệt so với N3291 rất nhỏ)
[.__.] 2010-11-27: N3225
[.__.] 2010-08-21: N3126
[.__.] 2010-03-29: N309
[.__.] 2010/02/2016: N3035
[.__.] 2009-11-09: N30
[.__.] 2009-09-25: N296
[.__.] 2009-06-22: N2914
[.__.] 2009-03-23: N2857
[.__.] 2008-10-04: N2798
[.__.] 2008-08-25: N272
[.__.] 2008-06-27: N2691
[.__.] 2008-05-19: N2606
[.__.] 2008/03/17: N2588
[.__.] 2008/02/2016: 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

Đây có vẻ là tiêu chuẩn C++ 03 cũ:
[.__.] Tất cả các phiên bản dưới đây yêu cầu Xác thực
[.__.] 2004-11-05: N17
[.__.] 2004-07-16: N1655 Không chính thức
[.__.] 2004/02/07: N1577 C++ 03 (Hoặc rất gần)
[.__.] 2001-09-13: N1316 Dự thảo Bản thảo kỹ thuật mở rộng
[.__.] 1997-00-00: Bản thảo kỹ thuật mở rộng N1117

Tất cả các phiên bản nháp sau của tiêu chuẩn :
[.__.] Tất cả những thứ sau đây có thể tải xuống miễn phí
[.__.] 1996-00-00: N0836 Bản thảo Bản thảo kỹ thuật mở rộng
[.__.] 1995-00-00: Tài liệu làm việc N0785 cho Dự thảo Tiêu chuẩn quốc tế được đề xuất cho các hệ thống thông tin - Ngôn ngữ lập trình C++

Giấy tờ thú vị khác:

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

413
Martin York

C99 là có sẵn trực tuyến . Trích dẫn từ www.open-std.org :

Phiên bản tiêu chuẩn có sẵn công khai mới nhất là C99 + TC1 + TC2 + TC3, WG14 N1256 , ngày 2007-09-07. Đây là một tài liệu làm việc WG14, nhưng nó phản ánh tiêu chuẩn hợp nhất tại thời điểm phát hành.

63
Frederico

Liên kết dự thảo:

C++ 11 (+ sửa lỗi biên tập): N3337 HTML , PDF

C++ 14 (+ sửa lỗi biên tập): N4140 HTML , PDF

C11 N157 ( văn bản )

C99 N1256

Bản nháp của Tiêu chuẩn được lưu hành để bình luận trước khi phê chuẩn và xuất bản.

Lưu ý rằng dự thảo đang hoạt động không phải là tiêu chuẩn hiện hành và nó không chính xác là tiêu chuẩn được công bố

23
user1055604

Bạn có thể thấy dự thảo tiêu chuẩn quốc tế cho C++ 0x hữu ích.

12
James Hopkin

Các tiêu chuẩn ISO tiêu tốn tiền, từ một số tiền vừa phải (đối với phiên bản PDF), đến một chút nữa (đối với phiên bản sách).

Mặc dù chúng chưa được hoàn thiện, tuy nhiên, chúng thường có thể được tìm thấy trực tuyến, dưới dạng bản nháp. Hầu hết các phiên bản cuối cùng không khác biệt đáng kể so với bản nháp cuối cùng, vì vậy trong khi không hoàn hảo, chúng sẽ rất phù hợp.

9
Pieter

Các tiêu chuẩn C99 và C++ 03 có sẵn ở dạng sách từ Wiley:

Ngoài ra, như đã đề cập, dự thảo làm việc cho các tiêu chuẩn trong tương lai thường có sẵn từ các trang web của ủy ban:

Bản nháp C-201x có sẵn là N1336 và bản nháp C++ 0x là N3225 .

6
Anthony Williams

Các tiêu chuẩn ISO C và C++ rất đắt đỏ. Mặt khác, INCITS tái xuất bản chúng với giá rẻ hơn rất nhiều. http://www.techstreet.com/ dường như có PDF với giá $ 30 (tìm kiếm THU NHẬP/ISO/IEC 14882: 2003).

Phiên bản Hardcopy cũng có sẵn. Hãy tìm các phiên bản của Viện Tiêu chuẩn Anh, được xuất bản bởi Wiley.

3
MSalters

Văn bản của một bản nháp của tiêu chuẩn ANSI C (còn gọi là C.89) có sẵn trực tuyến. Điều này đã được ủy ban ANSI chuẩn hóa trước khi được chấp nhận bởi Tiêu chuẩn ISO C (C.90), do đó việc đánh số các phần khác nhau (ANSI phần 2 đến 4 tương ứng với các phần từ 5 đến 7 của ISO), mặc dù nội dung là (được cho là được) phần lớn giống hệt nhau.

3
jxh

Các tài liệu tiêu chuẩn thực tế có thể không hữu ích nhất. Hầu hết các trình biên dịch không thực hiện đầy đủ các tiêu chuẩn và đôi khi có thể thực sự xung đột. Vì vậy, tài liệu biên dịch mà bạn đã có sẽ hữu ích hơn. Ngoài ra, tài liệu này sẽ chứa các nhận xét và ghi chú dành riêng cho nền tảng trên bất kỳ cảnh báo nào.

2
Kris Kumler

Mặc dù không phải là một tiêu chuẩn thực tế, có một sửa đổi đối với ISO C (C89/90) được gọi là C94/95, hoặc Phụ lục tiêu chuẩn 1. Nó được tích hợp vào C99, mặc dù một số trình biên dịch như Clang cho phép bạn specifiy -std=c94 trên dòng lệnh. Có thể mua ISO/IEC 9899: 1990/AMD 1: 1995 với giá cực đắt từ SAI GLOBAL (PDF hoặc cứng bản sao).

Một bản tóm tắt của tài liệu có thể được tìm thấy ở đây .

Khi (sau đó là dự thảo) Tiêu chuẩn ANSI C đang được xem xét để áp dụng Tiêu chuẩn quốc tế vào năm 1990, đã có một số ý kiến ​​phản đối vì nó không giải quyết được các vấn đề quốc tế hóa. Do Tiêu chuẩn đã được thực hiện vài năm, nên đã đồng ý rằng một vài thay đổi sẽ được thực hiện để cung cấp cơ sở (ví dụ: các chức năng trong mục 7.10.7 đã được thêm vào) và công việc sẽ được thực hiện riêng để cung cấp quốc tế hóa đúng tiêu chuẩn. Công việc này đã đạt đến đỉnh cao trong Phụ lục 1 tiêu chuẩn.

Phụ lục 1 tiêu chuẩn thể hiện phản ứng của C đối với cả những hạn chế và hứa hẹn của các bộ ký tự quốc tế. Các bản tóm tắt và tiêu đề nhằm cải thiện sự xuất hiện của các chương trình C được viết bằng các biến thể quốc gia của ISO 646 mà không có, ví dụ: {hoặc} ký tự. Ở phía bên kia của quang phổ, các cơ sở được kết nối và mở rộng cơ sở gần như không đủ của Tiêu chuẩn cũ thành một bộ tiện ích đầy đủ và nhất quán để xử lý các ký tự rộng và chuỗi đa chuỗi.

Tài liệu này tóm tắt Phụ lục Tiêu chuẩn 1. Dự định nhanh chóng thông báo cho những độc giả đã quen thuộc với Tiêu chuẩn; nó không, và không thể, giới thiệu các vấn đề phức tạp đằng sau NA1, và cũng không thể thay thế tài liệu gốc làm tài liệu tham khảo. (Tuy nhiên, nó cố gắng chính xác nhất có thể và tác giả của nó muốn nghe về bất kỳ lỗi hoặc thiếu sót nào.)

1
user3920237