คำเตือน
นี่คือรายการของหนังสือสุ่มที่มีคุณภาพหลากหลาย ในมุมมองของบางคน (ด้วยเหตุผลบางอย่าง) มันไม่ได้เป็นรายการหนังสือที่แนะนำอีกต่อไป หนังสือบางเล่มมีข้อความที่ไม่ถูกต้องโจ๋งครึ่มหรือสอนวิธีการที่ผิด / เป็นอันตราย ผู้ที่ตระหนักถึงหนังสือดังกล่าวสามารถแก้ไขคำตอบนี้เพื่อช่วยปรับปรุง ดูรายการหนังสือ C ได้ไปยุ่งเหยิง จะทำอย่างไรกับมัน? และลบการตรวจสอบคำถาม 2018ด้วย
ข้อมูลอ้างอิง (ทุกระดับ)
ผู้เริ่ม
สื่อกลาง
Modern C - Jens Gustedt (2017 1st Edn; 2020 2nd Edn) ครอบคลุม C ใน 5 ระดับ (เผชิญหน้า, ความใกล้ชิด, ความรู้ความเข้าใจ, ประสบการณ์, ความทะเยอทะยาน) ตั้งแต่ต้น C ถึงระดับสูง C ครอบคลุม C11 และ C17 รวมถึงหัวข้อและการเข้าถึงอะตอมมิกซึ่งหนังสือเล่มอื่น ๆ คอมไพเลอร์บางคนไม่รู้จักคุณสมบัติเหล่านี้ในทุกสภาพแวดล้อม
การเชื่อมต่อและการใช้งาน C - David R. Hanson (1997) จัดเตรียมข้อมูลเกี่ยวกับวิธีกำหนดขอบเขตระหว่างอินเตอร์เฟสและการนำไปใช้งานใน C ในแบบทั่วไปและแบบใช้ซ้ำได้ นอกจากนี้ยังแสดงให้เห็นถึงหลักการนี้ด้วยการนำไปใช้กับการใช้กลไกทั่วไปและโครงสร้างข้อมูลใน C เช่นรายการชุดข้อยกเว้นการจัดการสตริงการจัดสรรหน่วยความจำและอื่น ๆ โดยทั่วไปแฮนสันเอารหัสทั้งหมดที่เขาเขียนไว้เป็นส่วนหนึ่งของการสร้างไอคอนและlccและดึงบิตที่ดีที่สุดในรูปแบบที่คนอื่นสามารถนำมาใช้ใหม่สำหรับโครงการของตนเอง มันเป็นรูปแบบของการเขียนโปรแกรม C ที่ดีโดยใช้เทคนิคการออกแบบที่ทันสมัย (รวมถึงข้อมูลนามธรรมของ Liskov) แสดงวิธีการจัดระเบียบโครงการ C ขนาดใหญ่เป็นห้องสมุดที่มีประโยชน์มากมาย
หนังสือปริศนา C - Alan R. Feuer (1998)
ไลบรารี C มาตรฐาน - PJ Plauger (1992) มันมีซอร์สโค้ดที่สมบูรณ์เพื่อการใช้งานของไลบรารีมาตรฐาน C89 พร้อมด้วยการอภิปรายอย่างกว้างขวางเกี่ยวกับการออกแบบและสาเหตุที่รหัสได้รับการออกแบบตามที่แสดง
ศตวรรษที่ 21 C: C เคล็ดลับจากโรงเรียนใหม่ - Ben Klemens (2012) นอกจากภาษา C หนังสือเล่มนี้อธิบาย gdb, valgrind, autotools และ git ความคิดเห็นเกี่ยวกับสไตล์พบได้ในส่วนสุดท้าย (บทที่ 6 ขึ้นไป)
อัลกอริทึมใน C - Robert Sedgewick (1997) ให้คุณเข้าใจถึงการใช้อัลกอริทึมใน C อย่างแท้จริงชัดเจนและชัดเจน อาจจะทำให้คุณต้องการทิ้งหนังสืออัลกอริธึมอื่น ๆ ของคุณทั้งหมดและเก็บหนังสือนี้ไว้
ตัวชี้บน C - Kenneth Reek (1997)
ตัวชี้ใน C - Naveen Toppo และ Hrishikesh Dewan (2013)
การแก้ปัญหาและการออกแบบโปรแกรมใน C (รุ่นที่ 6) - Jeri R. Hanly และ Elliot B. Koffman (2009)
โครงสร้างข้อมูล - วิธีการขั้นสูงโดยใช้ C - Jeffrey Esakov และ Tom Weiss (1989)
C Unleashed - Richard Heathfield, Lawrence Kirby, และคณะ (2000) ไม่เหมาะ แต่เป็นโปรแกรมเมอร์ระดับกลางที่มีปัญหาในการฝึกเขียนในหนังสือเล่มนี้ นี่เป็นวิธีการแบบตำราที่ดีที่ผู้แนะนำ comp.lang.c แนะนำ
ผู้เชี่ยวชาญ
ไม่มีหมวดหมู่
Essential C (PDF ฟรี) - Nick Parlante (2003) โปรดทราบว่าสิ่งนี้อธิบายถึงภาษา C90 ในหลาย ๆ จุด ( เช่นในการพูดถึง//
ความคิดเห็นและการวางการประกาศตัวแปรที่จุดใดก็ได้ในรหัส) ดังนั้นควรได้รับการปฏิบัติด้วยความระมัดระวัง
คำถามที่พบบ่อยการเขียนโปรแกรม C: คำถามที่พบบ่อย - Steve Summit (1995) นี่คือหนังสือของเว็บไซต์ที่ระบุไว้ก่อนหน้า ไม่ครอบคลุม C99 หรือมาตรฐานในภายหลัง
C สั้น ๆ - Peter Prinz และ Tony Crawford (2005) หนังสือยอดเยี่ยมถ้าคุณต้องการการอ้างอิงสำหรับ C99
หน้าที่ C - Pieter Hartel และ Henk Muller (1997) สอนการปฏิบัติที่ทันสมัยซึ่งมีราคาสูงสำหรับการเขียนโปรแกรมระดับต่ำโดยมีการทำงานพร้อมกันและเป็นโมดุล
การฝึกเขียนโปรแกรม - Brian W. Kernighan และ Rob Pike (1999) หนังสือที่ดีมากในการติดตาม K&R มันใช้ C ++ และ Java ด้วย
กับดักและหลุมพราง Cโดย A. Koenig (1989) ดีมาก แต่สไตล์ C มีมาตรฐานก่อนวันที่ C ซึ่งทำให้ไม่แนะนำในสมัยนี้
บางคนถกเถียงกันถึงการกำจัด 'กับดักและหลุมพราง' ออกจากรายการนี้เพราะบางคนติดกับดักว่าทำผิดพลาด คนอื่นยังคงเถียงกันเพื่อรวม บางทีมันควรจะถูกมองว่าเป็นหนังสือ 'ผู้เชี่ยวชาญ' เพราะต้องการความรู้ที่กว้างขวางของ C เพื่อทำความเข้าใจว่ามีอะไรเปลี่ยนแปลงไปบ้างตั้งแต่ถูกตีพิมพ์
สร้างเสียงกระเพื่อมของคุณเอง - Daniel Holden (2014) วิธีที่สนุกสนานในการเรียนรู้ C
MISRA-C - มาตรฐานอุตสาหกรรมเผยแพร่และดูแลโดยสมาคมอุตสาหกรรมซอฟต์แวร์ความน่าเชื่อถือ ครอบคลุม C89 และ C99
แม้ว่านี่จะไม่ใช่หนังสือเช่นนี้โปรแกรมเมอร์หลายคนแนะนำให้อ่านและนำไปปฏิบัติให้ได้มากที่สุด เดิมที MISRA-C มีจุดประสงค์เพื่อเป็นแนวทางสำหรับการใช้งานที่สำคัญด้านความปลอดภัยโดยเฉพาะ แต่จะใช้กับพื้นที่ของแอปพลิเคชันที่ต้องการรหัส C ที่เสถียรและปราศจากข้อบกพร่อง (ใครไม่ต้องการบั๊กน้อยลง) MISRA-C กำลังกลายเป็นมาตรฐานอย่างแท้จริงในอุตสาหกรรมสมองกลฝังตัวทั้งหมดและกำลังได้รับความนิยมเพิ่มขึ้นแม้ในสาขาการเขียนโปรแกรมอื่น ๆ มี (อย่างน้อย) สามสิ่งพิมพ์ของมาตรฐาน (1998, 2004 และรุ่นปัจจุบันจาก 2012) นอกจากนี้ยังมีเอกสารแนวทางการปฏิบัติตาม MISRA จากปี 2559 และ MISRA C: 2012 การแก้ไขเพิ่มเติม 1 - แนวทางความปลอดภัยเพิ่มเติมสำหรับ MISRA C: 2012 (เผยแพร่ในเดือนเมษายน 2559)
โปรดทราบว่าข้อ จำกัด บางอย่างในกฎ MISRA ไม่เหมาะสมกับทุกบริบท ตัวอย่างเช่นคำสั่ง 4.12 ระบุว่า "จะไม่ใช้การจัดสรรหน่วยความจำแบบไดนามิก" สิ่งนี้เหมาะสมในระบบฝังตัวซึ่งกฎ MISRA ได้รับการออกแบบ มันไม่เหมาะสมทุกที่ (ตัวอย่างเช่นคอมไพเลอร์โดยทั่วไปใช้การจัดสรรหน่วยความจำแบบไดนามิกสำหรับสิ่งต่าง ๆ เช่นตารางสัญลักษณ์และการดำเนินการโดยไม่มีการจัดสรรหน่วยความจำแบบไดนามิกอาจเป็นเรื่องยากหากไม่เป็นการผิดปกติ)
รายการที่เก็บถาวรของหนังสือที่ตรวจสอบโดย ACCU ในC ของผู้เริ่มต้น (116 ชื่อ) จาก 2007 และAdvanced C (76 ชื่อเรื่อง) จากปี 2008 หนังสือเหล่านี้ส่วนใหญ่ไม่ได้อยู่ในไซต์หลักอีกต่อไปและคุณไม่สามารถเรียกดูได้ตามหัวเรื่อง อย่างไรก็ตาม.
คำเตือน
ระวังหนังสือที่เขียนโดยเฮอร์เบิร์ Schildt โดยเฉพาะอย่างยิ่งคุณควรอยู่ห่างจากC: The Complete Reference (รุ่นที่ 4, 2000) ซึ่งรู้จักกันในบางวงการว่า C: The Nonsense ที่สมบูรณ์
นอกจากนี้ยังไม่ได้ใช้หนังสือแจ้งให้เรา C (16 THฉบับ 2017) โดย Yashwant Kanetkar หลายคนมองว่าเป็นหนังสือที่ล้าสมัยที่สอน Turbo C และมีเนื้อหาที่ล้าสมัยทำให้เข้าใจผิดและไม่ถูกต้องมากมาย ตัวอย่างเช่นหน้า 137 กล่าวถึงผลลัพธ์ที่คาดหวังจากprintf("%d %d %d\n", a, ++a, a++)
และไม่ได้จัดประเภทเป็นพฤติกรรมที่ไม่ได้กำหนดเท่าที่ควร
เรียนรู้ C The Hard Way (2015) โดย Zed Shaw หนังสือที่มีบทวิจารณ์แบบผสม
บทวิจารณ์ของหนังสือเล่มนี้โดย Tim Hentenaar:
เพื่อสรุปมุมมองของฉันซึ่งวางไว้ด้านล่างผู้เขียนนำเสนอเนื้อหาในลักษณะที่เกินความจริงและทำให้เข้าใจผิดอย่างยิ่งคลังข้อมูลทั้งหมดเป็นระเบียบที่มาพร้อมกันและความคิดเห็นและการวิเคราะห์บางอย่างที่เขาเสนอนั้นผิดธรรมดา ฉันพยายามดูหนังสือเล่มนี้ผ่านสายตาของมือใหม่ แต่น่าเสียดายที่ฉันลำเอียงจากประสบการณ์ในการเขียนรหัสใน C. มันชัดเจนสำหรับฉันว่าผู้เขียนมีความเข้าใจข้อบกพร่องของ C หรือเขาจงใจเกินความจริง จุดที่เขาหลอกลวงผู้อ่าน (โดยเจตนาหรืออย่างอื่น)
"Learn C The Hard Way" ไม่ใช่หนังสือที่ฉันสามารถแนะนำให้คนที่กำลังเรียนรู้ที่จะเขียนโปรแกรมและการเรียนรู้ C. หากคุณเป็นโปรแกรมเมอร์ที่มีความสามารถในภาษาอื่น ๆ ที่เกี่ยวข้องแล้วแสดงถึงการแสดงออกที่น่าสนใจและผิดปกติใน C ถึงแม้ว่าฉันจะมีการจองเกี่ยวกับบางส่วนของหนังสือ Jonathan Leffler
เก่า
ร่วมสมทบอื่น ๆ , ไม่ได้เครดิตจำเป็นต้องอยู่ในประวัติการแก้ไขรวม:
อเล็กซ์ล็อควู้ด ,
เบนแจ็คสัน ,
บับเบิ้ล ,
กรงเล็บ ,
coledot ,
Dana โรบินสัน ,
แดเนียลโฮลเดน ,
DERVIN Thunk ,
DWC ,
Erci Hou ,
Garen ,
haziz ,
โยฮัน Bezem ,
โจนาธาน Leffler ,
โจชัว Partogi ,
Lucas ,
Lundin ,
Matt K. ,
mossplix ,
Matthieu M. ,
midor ,
Nietzche-jou ,
Norman Ramsey ,
r3st0r3 ,
ridthyselfelf ,
Robert S. Barnes ,
Steve Summit ,
Tim Ring ,
Tony Bai ,
VMAtm