Apakah C99 membuat buku K&R ketinggalan zaman? Jika demikian, apa yang harus direkomendasikan di tempatnya? [Tutup]

10

C99 telah bersama kami untuk sementara waktu sekarang. Ini memperkenalkan banyak fitur yang tidak ada dalam Bahasa Pemrograman K & Rs . Tak satu pun dari mereka yang radikal. Namun, bahkan fitur-fitur kecil seperti bisa menggabungkan deklarasi dan mengubah kode bagaimana seseorang mengatur kode.

Meskipun saya masih menganggap buku K&R sebagai referensi yang tak ternilai, dan seperti gaya penulisan, apakah ada buku yang lebih baik yang memperhitungkan standar C99? Saya akan membeli K&R edisi ketiga dalam sekejap, tapi saya pikir itu tidak akan terjadi.

Justin Dearing
sumber
Sebenarnya tidak ada versi bahasa Inggris C99 yang diperbarui? Terjemahan bahasa Ceko untuk buku ini diperbarui untuk C99.
Šimon Tóth
@Let_Me_Be Edisi kedua buku K&R diterbitkan pada tahun 1988. Tidak ada versi bahasa Inggris yang lebih baru dari buku ini. Edisi itu mencakup ANSI C dari tahun 1988.
Thomas Owens
Karena cara mengatur hak cipta / royalti, K&R tidak akan membuat apa pun dengan menulis edisi ketiga, itulah sebabnya kami belum melihatnya.
BlackJack
@ BlackJack itu memalukan.
Justin Dearing
2
@Let_Me_Be - Berapa banyak untuk mendapatkan terjemahan Bahasa Ceko yang diterjemahkan kembali ke Bahasa Inggris? :-) Saya pikir itu mungkin satu-satunya cara kita mendapatkan versi C99 K&R ...
voretaq7

Jawaban:

8

Saya masih menyarankan (edisi kedua ANSIfied) K&R untuk siapa saja yang baru belajar C dan yang ingin belajar Straight Prosedural C (objek minus). Saya akan menggandakan rekomendasi itu jika mereka berniat untuk meretas kode kernel * NIX suatu hari karena K&R benar-benar memiliki "Unix Mentality" dalam sebuah buku pemrograman.

Setelah mereka memahami dasar-dasar sintaks C dan memiliki ide gaya yang masuk akal, Anda dapat memperkenalkan mereka ke referensi lain yang berbicara tentang fitur C99 dan menjelaskan bahwa itu dapat mengubah cara mereka mengatur apa yang mereka tulis, tetapi mereka akan memiliki ( umumnya) kebiasaan yang baik dari mulai dengan K&R (seperti melakukan deklarasi di muka) dan mereka akan mengetahui mengapa di balik melakukan sesuatu yang bertentangan dengan kebiasaan itu - saya pikir Anda membangun programmer yang lebih baik dengan cara itu.

voretaq7
sumber
3
Melakukan deklarasi di muka sebenarnya adalah praktik buruk yang diwarisi dari gaya C89, variabel harus dideklarasikan tepat sebelum digunakan pertama kali. Lihat misalnya jawaban untuk pertanyaan ini
Étienne
2
@ Étienne Dengan "di depan" maksud saya "Variabel harus dideklarasikan sedini mungkin dalam lingkup di mana mereka akan digunakan." yang pada dasarnya adalah apa yang didukung oleh jawaban lain (atau setidaknya ditunjukkan dalam contohnya yang sangat sederhana). Saya menyetujui apa yang dianjurkan oleh jawaban itu, tetapi Anda ingin memastikan pemrogram baru menyadari bahwa "Ya ampun, saya memerlukan {counter, variabel temp, dll.} - Izinkan saya menyatakannya di sini di tengah-tengah logika saya." adalah hal yang buruk karena hal itu merusak keterbacaan seperti jawaban lain ini menunjukkan (setidaknya IMHO itu)
voretaq7
2
Tidak ada konsensus, dengan hormat saya tidak setuju bahwa itu adalah hal yang buruk, dan banyak orang berpikir itu adalah hal yang baik untuk menyatakannya di tengah logika, lihat juga programmer.stackexchange.com/questions/56585/…
Étienne
@ Étienne Itu adalah opini Anda, dan Anda tentu berhak untuk itu, tetapi untuk terus terang tidak ada cara Anda akan mengubah pendapat SAYA : Saya seorang hacker Unix tua yang cranky dan gaya pengkodean C sangat banyak hal yang religius bagi saya. Untungnya, tidak satu pun dari kita yang pernah membaca kode yang lain :-)
voretaq7
Semoga kami tidak ;-)
Étienne
8

Anda ingin Harbison dan Steele: " C: A Reference Manual "

Ini secara eksplisit mencakup C99 dan membandingkan / kontras dengan rasa C. lainnya. Saya merasa sangat berguna.

Angelo
sumber
1
Agar adil, H&S persis seperti yang dikatakannya: manual referensi , dan dengan sendirinya bukan sumber belajar yang bagus seperti K&R.
John Bode
Setuju! Saya pikir OP sedang mencari referensi, namun.
Angelo
1

Saya akan merekomendasikan King's C Programming: A Modern Approach . Ini lebih tebal dari K&R tetapi masih tidak terlalu empuk dan penulis menunjukkan apa yang baru dan tidak baru untuk C99 serta tips gaya dan hal-hal lain seperti itu.

Insinyur Dunia
sumber
1
$ 95 di Amazon, whoah!
Ernest Friedman-Hill
Sebenarnya Anda Harus Menunjuk pada jawaban Anda yang Anda maksud Pemrograman C: Pendekatan Modern (Edisi Kedua). Saya juga punya sesuatu untuk ditanyakan, bisakah kita mengobrol singkat?
Suraj Jain