C99 ทำให้หนังสือ K&R ล้าสมัยหรือไม่? ถ้าเป็นเช่นนั้นจะแนะนำอะไรในสถานที่? [ปิด]


10

C99 อยู่กับเรามาระยะหนึ่งแล้ว แนะนำมากคุณสมบัติที่ไม่ได้อยู่ในK & อาร์เอสภาษาซี ไม่มีของพวกเขารุนแรงโดยเฉพาะอย่างยิ่ง อย่างไรก็ตามแม้คุณสมบัติขนาดเล็กเช่นความสามารถในการ intermingle declarations และรหัสเปลี่ยนวิธีหนึ่งจัดรหัส

ในขณะที่ฉันยังพิจารณา K&R หนังสืออ้างอิงที่ทรงคุณค่าและชอบสไตล์การเขียนของมันมีหนังสือที่ดีกว่าที่คำนึงถึงมาตรฐาน C99 หรือไม่? ฉันจะซื้อ K&R รุ่นที่สามในจังหวะการเต้นของหัวใจ แต่ฉันไม่คิดว่ามันจะเกิดขึ้น


มีเวอร์ชันภาษาอังกฤษที่อัปเดต C99 จริงๆหรือ การแปลภาษาเช็กของหนังสือเล่มนี้ได้รับการอัพเดตสำหรับ C99
ŠimonTóth

@Let_Me_Be หนังสือ K&R รุ่นที่ 2 ได้รับการตีพิมพ์ในปี 1988 ไม่มีหนังสือเวอร์ชั่นภาษาอังกฤษที่ใหม่กว่า ฉบับนั้นครอบคลุม ANSI C ตั้งแต่ปี 1988
โธมัสโอเวนส์

เนื่องจากวิธีการตั้งค่าลิขสิทธิ์ / ค่าลิขสิทธิ์ K&R จะไม่ทำอะไรเลยโดยการเขียนฉบับที่สามซึ่งเป็นสาเหตุที่เรายังไม่ได้เห็น
BlackJack

@ BlackJack นั่นเป็นความอัปยศที่แท้จริง
Justin Dearing

2
@Let_Me_Be - การแปลภาษาเช็กแปลกลับเป็นภาษาอังกฤษเป็นเท่าใด :-) ฉันคิดว่ามันอาจเป็นวิธีเดียวที่เราจะได้รับ K&R รุ่น C99 ...
voretaq7

คำตอบ:


8

ฉันยังคงแนะนำ (ฉบับที่สองของ ANSIfied) K&R สำหรับทุกคนที่เพิ่งเรียนรู้ C และผู้ที่ต้องการเรียนรู้วิธีการตรง C (ลบวัตถุ) ฉันจะเพิ่มคำแนะนำนั้นเป็นสองเท่าหากพวกเขาตั้งใจที่จะแฮ็กรหัสเคอร์เนล * NIX หนึ่งวันเนื่องจาก K&R มี "Unix Mentality" ในหนังสือโปรแกรม

เมื่อพวกเขาเข้าใจพื้นฐานของไวยากรณ์ C และมีแนวคิดที่สมเหตุสมผลแล้วคุณสามารถแนะนำพวกเขาไปยังแหล่งอ้างอิงอื่น ๆ ที่พูดถึงคุณสมบัติของ C99 และอธิบายว่ามันอาจเปลี่ยนวิธีการจัดระเบียบสิ่งที่เขียน แต่พวกเขาจะมี ( โดยทั่วไป) นิสัยที่ดีจากการเริ่มต้นกับ K&R (เช่นการประกาศล่วงหน้า) และพวกเขาจะรู้ตัวว่าทำไมทำอะไรบางอย่างที่ขัดกับนิสัยเหล่านั้น - ฉันคิดว่าคุณสร้างโปรแกรมเมอร์ที่ดีขึ้นด้วยวิธีนี้


3
การประกาศล่วงหน้าเป็นการฝึกฝนที่ไม่ดีซึ่งสืบทอดมาจากสไตล์ C89 ควรประกาศตัวแปรก่อนใช้งานครั้งแรก ดูตัวอย่างคำตอบของคำถามนี้
Étienne

2
@ Étienneโดย "ล่วงหน้า" ฉันหมายถึง "ทุกตัวแปรควรได้รับการประกาศให้เร็วที่สุดเท่าที่จะเป็นไปได้ภายในขอบเขตที่จะใช้งาน" ซึ่งโดยทั่วไปคือคำตอบอื่นที่สนับสนุน (หรืออย่างน้อยก็แสดงให้เห็นในตัวอย่างที่ง่ายมาก) ฉันเห็นด้วยกับสิ่งที่คำตอบนั้นให้การสนับสนุน แต่คุณต้องการให้แน่ใจว่าโปรแกรมเมอร์ใหม่ตระหนักดีว่า "โอ้ drat ฉันต้องการ {counter, temp variable ฯลฯ } - ให้ฉันเพิ่งประกาศที่นี่ตรงกลางของตรรกะของฉัน" เป็นสิ่งที่ไม่ดีเพราะการทำเช่นซากการอ่านเช่นนี้จุดคำตอบอื่น ๆ ออก (อย่างน้อยก็ IMHO ไม่)
voretaq7

2
ฉันทามติไม่เห็นด้วยว่ามันเป็นสิ่งที่ไม่ดีและผู้คนจำนวนมากคิดว่ามันเป็นสิ่งที่ดีที่จะประกาศในช่วงกลางของตรรกะดูprogrammers.stackexchange.com/questions/56585/ ......
Étienne

@ Étienneนั่นคือความคิดเห็นของคุณและคุณมีสิทธิ์ได้รับอย่างแน่นอน แต่จะทื่อไม่มีทางที่คุณจะเปลี่ยนความคิดเห็นของฉัน : ฉันเป็นแฮ็กเกอร์ Unix เก่า ๆ ที่บ้าๆบอ ๆ และสไตล์การเขียนโปรแกรม C ผม. โอกาสที่โชคดีไม่ใช่พวกเราทุกคนที่จะต้องอ่านรหัสอื่น :-)
voretaq7

หวังว่าเราจะไม่ ;-)
Étienne

8

คุณต้องการ Harbison and Steele: " C: A Reference Manual "

มันครอบคลุม C99 อย่างชัดเจนและเปรียบเทียบ / เปรียบเทียบกับรสชาติอื่น ๆ ของ C. ฉันพบว่ามันมีประโยชน์มาก


1
เพื่อความเป็นธรรม H&S เป็นสิ่งที่กล่าวไว้: คู่มืออ้างอิงและโดยตัวของมันเองไม่ได้เป็นแหล่งเรียนรู้ที่ยอดเยี่ยมอย่างที่ K&R เป็น
John Bode

ตกลง! ฉันคิดว่า OP กำลังมองหาการอ้างอิงอย่างไรก็ตาม
Angelo

1

ผมอยากแนะนำให้พระบาทสมเด็จพระเจ้าอยู่หัวเขียนโปรแกรม C: วิธีโมเดิร์น มันหนากว่า K&R แต่ก็ยังไม่ได้เสริมเบาะโดยเฉพาะและผู้เขียนชี้ให้เห็นว่าอะไรคืออะไรและไม่ใหม่สำหรับ C99 รวมถึงเคล็ดลับสไตล์และสิ่งอื่น ๆ


1
$ 95 ใน Amazon อ๊ะ!
Ernest Friedman-Hill

ที่จริงแล้วคุณควรชี้ให้เห็นในคำตอบของคุณว่าคุณหมายถึงการเขียนโปรแกรม C: แนวทางที่ทันสมัย ​​(ฉบับที่สอง) นอกจากนี้ฉันมีสิ่งที่จะถามเราสามารถแชทสั้น ๆ ได้ไหม
Suraj Jain
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.