Untuk banyak pertanyaan, jawabannya tampaknya ditemukan dalam "standar". Namun, di mana kita menemukannya? Lebih disukai online.
Googling kadang-kadang bisa terasa sia-sia, sekali lagi terutama untuk standar C, karena mereka tenggelam dalam banjir diskusi di forum pemrograman.
Untuk memulai ini, karena ini adalah yang saya cari saat ini, di mana ada sumber daya online yang bagus untuk:
- C89
- C99
- C11
- C ++ 98
- C ++ 03
- C ++ 11
- C ++ 14
- C ++ 17
Jawaban:
Versi standar PDF
Pada 1 September 2014, lokasi terbaik berdasarkan harga untuk dokumen standar C dan C ++ dalam PDF adalah:
$ 60 dari ansi.org$ 60 dari Techstreet$ 30 dari ansi.org$ 48 dari SAI GlobalC ++ 98 - ISO / IEC 14882: 1998: $ 90 NZD (sekitar $ 60 AS) dari Standar Selandia Baru
C17 / C18 - ISO / IEC 9899: 2018: $ 185 dari SAI Global / $ 116 dari INCITS / ANSI / N2176 / c17_updated_proposed_fdis.pdf konsep dari November 2017 (Tautan rusak, lihat Wayback Machine N2176 )
$ 30$ 60 dari ansi.org / WG14 draft versi N1570$ 30$ 60 dari ansi.org / WG14 draft versi N1256$ 141 dari ansi.org$ 175 dari Techstreet (versi Australia dari C90, identik dengan ISO 9899: 1990)Anda biasanya tidak bisa mendapatkan revisi lama dari suatu standar (standar apa saja) langsung dari badan standar tidak lama setelah edisi standar yang baru dirilis. Dengan demikian, standar untuk C89, C90, C99, C ++ 98, C ++ 03 akan sulit ditemukan untuk pembelian dari badan standar. Jika Anda memerlukan revisi standar lama, periksa Techstreet sebagai salah satu sumber yang mungkin. Misalnya, masih dapat memberikan versi Kanada CAN / CSA-ISO / IEC 9899: 1990 dalam PDF, dengan biaya tambahan.
Versi elektronik non-PDF dari standar
Cetak versi standar
Salinan cetak standar tersedia dari badan standar nasional dan ISO tetapi sangat mahal.
Jika Anda ingin hardcopy dari standar C90 untuk banyak uang kurang dari di atas, Anda mungkin dapat menemukan salinan bekas murah dari Herb Schildt buku 's The Annotated ANSI Standard di Amazon , yang berisi teks yang sebenarnya dari standar (berguna) dan komentar tentang standar (kurang bermanfaat - berisi beberapa kesalahan berbahaya dan menyesatkan).
Standar C99 dan C ++ 03 tersedia dalam bentuk buku dari Wiley dan BSI (British Standards Institute):
Versi konsep komite standar (gratis)
Draf kerja untuk standar di masa mendatang sering tersedia dari situs web komite:
Jika Anda ingin mendapatkan konsep dari standar C / C ++ saat ini atau sebelumnya, ada beberapa yang tersedia secara gratis di internet:
Untuk C:
ANSI X3.159-198 (C89):
Saya tidak dapat menemukan PDF C89, tetapi hampir sama dengan konsep di bawah ini untuk ISO / IEC 9899: 1990 (C90). Satu-satunya perbedaan adalah pada boilerplate dan penomoran bagian.
ISO / IEC 9899: 1990 (C90):
https://www.pdf-archive.com/2014/10/02/ansi-iso-9899-1990-1/ansi-iso-9899-1990-1.pdf
(Hampir sama dengan ANSI X3.159-198 (C89) kecuali untuk frontmatter dan penomoran bagian. Perhatikan bahwa konversi antara ANSI dan ISO / IEC Standar terlihat di dalam dokumen ini, dokumen menyebut namanya sebagai "ANSI / ISO : 9899/99 "walaupun ini bukan nama yang tepat dari standar yang dibuat kemudian, nama yang tepat adalah" ISO / IEC 9899: 1990 ")
ISO / IEC 9899: 1999 (C99):
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
ISO / IEC 9899: 2011 (C11):
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
ISO / IEC 9899: 2018 (C18):
https://web.archive.org/web/20181230041359if_/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf (N2176)
Untuk C ++:
ISO / IEC 14882: 1998 (C ++ 98):
http://www.lirmm.fr/~ducour/Doc-objets/ISO+IEC+14882-1998.pdf
ISO / IEC 14882: 2003 (C ++ 03):
https://cs.nyu.edu/courses/fall11/CSCI-GA.2110-003/documents/c++2003std.pdf
ISO / IEC 14882: 2011 (C ++ 11):
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
ISO / IEC 14882: 2014 (C ++ 14):
https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true
ISO / IEC 14882: 2017 (C ++ 17):
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf
Perhatikan bahwa dokumen-dokumen ini tidak sama dengan standar, meskipun versi sebelum pertemuan yang memutuskan standar biasanya sangat dekat dengan apa yang ada dalam standar akhir. Versi FCD (Final Committee Draft) dilindungi kata sandi; Anda harus berada di komite standar untuk mendapatkannya.
Meskipun versi konsep mungkin sangat dekat dengan versi standar akhir yang telah diratifikasi, beberapa editor posting ini akan sangat menyarankan Anda untuk mendapatkan salinan dokumen yang sebenarnya - terutama jika Anda berencana mengutipnya sebagai referensi. Tentu saja, siswa yang kelaparan harus melanjutkan dan menggunakan konsep jika kekurangan uang.
Tampaknya, jika Anda bersedia dan dapat menunggu beberapa bulan setelah ratifikasi suatu standar, untuk mencari "INCIT / ISO / IEC" daripada "ISO / IEC" ketika mencari standar adalah kuncinya. Dengan melakukan itu, salah satu editor posting ini dapat menemukan standar C11 dan C ++ 11 dengan harga yang wajar. Misalnya, jika Anda mencari "INCITS / ISO / IEC 9899: 2011" alih-alih "ISO / IEC 9899: 2011" di webstore.ansi.org Anda akan menemukan versi PDF dengan harga terjangkau.
Situs https://wg21.link/ menyediakan tautan URL pendek ke C ++ draft dan draft standar kerja saat ini, dan makalah komite:
Draf standar saat ini dipertahankan sebagai sumber LaTeX di Github . Sumber-sumber ini dapat dikonversi ke HTML menggunakan cxxdraft-htmlgen . Situs-situs berikut mempertahankan halaman HTML yang dihasilkan:
Lagu Tim juga mengelola versi HTML dan PDF yang dihasilkan dari Networking TS dan Ranges TS.
sumber
Versi standar online dapat ditemukan:
Working Draft, Standar untuk Bahasa Pemrograman C ++
Berikut semua versi konsep standar :
Semua yang berikut ini dapat diunduh secara bebas
(banyak di antaranya dapat ditemukan di tautan GitHub utama ini)
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-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
Ini tampaknya menjadi standar baru:
Versi ini memerlukan Otentikasi
2017-03-21: N4660 adalah Standar Draf C ++ 17
Berikut semua versi konsep standar :
Semua yang berikut ini dapat diunduh secara gratis
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
Ini tampaknya menjadi standar C ++ 14 yang lama :
Versi ini membutuhkan Otentikasi
2014-10-07: N4140 git Pada dasarnya C ++ 14 dengan kesalahan kecil dan kesalahan ketik dikoreksi
2014-09-02: N4141 git Standard C ++ 14
2014- 03-02: N3937
2014-03-02: N3936 git
Berikut semua versi konsep standar :
Semua yang berikut ini dapat diunduh secara bebas 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 Pada dasarnya C ++ 11 dengan kesalahan kecil dan kesalahan pengetikan
Ini tampaknya merupakan standar C ++ 11 yang lama :
Versi ini membutuhkan Otentikasi
2011-04-05: N3291 C ++ 11 (Atau Sangat Dekat)
Berikut semua versi konsep standar :
Semua yang berikut ini dapat diunduh secara gratis
2011-02-28: N3242 (perbedaan dari N3291 sangat kecil)
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
Ini tampaknya merupakan standar C ++ 03 yang lama:
Semua versi di bawah ini memerlukan Otentikasi
2004-11-05: N1733
2004-07-16: N1655 Tidak Resmi
2004-02-07: N1577 C ++ 03 (Atau Sangat Dekat)
2001 -09-13: N1316 Draft Diperluas Corrigendum Teknis
1997-00-00: N1117 Draft Diperluas Corrigendum Teknis
Berikut semua rancangan versi standar :
Semua yang berikut ini dapat diunduh secara bebas
1996-00-00: N0836 Draft Expanded Technical Corrigendum
1995-00-00: N0785 Working Paper untuk Draft Usulan Standar Internasional untuk Sistem Informasi - Bahasa Pemrograman C ++
Makalah Menarik Lainnya:
2020 / 2019 / 2018 / 2017 / 2016 / 2015 / 2014 / 2013 / 2012 / 2011
sumber
C99 tersedia online . Dikutip dari www.open-std.org :
sumber
Tautan Draf:
C ++ 11 (+ perbaikan editorial): N3337 HTML , PDF
C ++ 14 (+ perbaikan editorial): N4140 HTML , PDF
C11 N1570 ( teks )
C99 N1256
sumber
Anda mungkin menemukan konsep standar internasional untuk C ++ 0x bermanfaat.
sumber
Standar ISO membutuhkan biaya, dari jumlah moderat (untuk versi PDF), hingga sedikit lebih banyak (untuk versi buku).
Meskipun mereka belum selesai, mereka biasanya dapat ditemukan online, sebagai konsep. Seringkali versi final tidak berbeda secara signifikan dari draft terakhir, jadi meskipun tidak sempurna, mereka akan cocok dengan baik.
sumber
Standar C99 dan C ++ 03 tersedia dalam bentuk buku dari Wiley:
Plus, sebagaimana telah disebutkan, rancangan kerja untuk standar di masa mendatang sering tersedia dari situs web komite:
Konsep C-201x tersedia sebagai N1336 , dan konsep C ++ 0x sebagai N3225 .
sumber
Standar ISO C dan C ++ sangat mahal. Di sisi lain, INCIT menerbitkannya kembali dengan harga yang jauh lebih murah. http://www.techstreet.com/ tampaknya memiliki PDF sebesar $ 30 (mencari INCIT / ISO / IEC 14882: 2003).
Versi cetak juga tersedia. Cari versi British Standards Institute, yang diterbitkan oleh Wiley.
sumber
Dokumen standar aktual mungkin bukan yang paling berguna. Sebagian besar penyusun tidak sepenuhnya menerapkan standar dan kadang-kadang mungkin benar-benar bertentangan. Jadi dokumentasi kompiler yang sudah Anda miliki akan lebih bermanfaat. Selain itu, dokumentasi akan berisi pernyataan dan catatan khusus platform pada setiap peringatan.
sumber
Teks konsep standar ANSI C (alias C.89) tersedia online. Ini distandarisasi oleh komite ANSI sebelum diterima oleh Standar ISO C (C.90), sehingga penomoran bagian berbeda (ANSI bagian 2 hingga 4 secara kasar sesuai dengan bagian ISO 5 hingga 7), meskipun kontennya (seharusnya menjadi) sebagian besar identik.
sumber
[0, 60]
, sedangkan C90 (salah)[0, 61]
tm_sec
adalah(0, 61)
. Saya pikir itu untuk lompatan detik, masuk akal.Meskipun bukan standar aktual, ada amandemen ISO C (C89 / 90) yang disebut C94 / 95, atau Normative Addendum 1. Itu diintegrasikan ke dalam C99, meskipun beberapa kompiler seperti Dentang memungkinkan Anda untuk menentukan
-std=c94
pada baris perintah. ISO / IEC 9899: 1990 / Amd 1: 1995 dapat dibeli dengan harga yang lumayan dari SAI GLOBAL (PDF atau hard copy).Ringkasan dokumen dapat ditemukan di sini .
sumber
http://c0x.coding-guidelines.com/ berisi versi standar C yang dapat ditelusuri berdasarkan HTML. Sebenarnya, versi yang sedikit dimodifikasi:
sumber