基础:《C语言程序设计:现代方法》(第2版)(C
Programming: A Modern Approach, 2nd Edition, K.N.King)《深入理解计算机系统》(修订版或第2版)(Computer Systems: A Programmer's Perspective,
Randal E. Bryant et al),阅读建议《C语言程序设计》(第2版)(The
C Programming Language, Brian W. Kernighan &Dennis M.
Ritchie)《程序员修炼之道》(The
Pragmatic Programmer: From Journeyman to master, Andy
Hunt &Dave Thomas)
02内核/驱动:Linux内核设计与实现》(第3版)(Linux
Kernel Development, 3rd Edition, Robert Love)《Linux设备驱动程序》(第3版)(Linux
Device Driver, 3rd Edition, Jonathan Corbet et al)《深入Linux内核架构》(Professional
Linux Kernel Architecture, Wolfgang Mauerer)
03应用:《UNIX环境高级编程》(Advanced
Programming in the UNIX Environment, W. Richard Stevens)《UNIX网络编程》(Unix
Network Programming, W. Richard Stevens)
04进阶:《C陷阱与缺陷》(C Traps and Pitfalls, Andrew Koenig)《C专家编程》(Expert C Programming, Peter
van der Linden)《ARM嵌入式系统开发:软件设计与优化》(ARM
System Developer's Guide: Designing and Optimizing System Software,
Andrew Sloss et al)
先学谭浩强的《C语言程序设计》,这本书比较简单可以入个门随便考个全国二级不过要想学好C语言这样还远远不够,建议多学习,精通C语言。一下是我搜集的书!!
比如《C语言之四书五经》中介绍的4本。(虽然这些书很多已经绝版了,但我相信电子版也是很有益处。况且,如果你真的想看,我相信你一定有办法搞的到。)这些书你会在很短的时间内看完(比如一两个月),这取决于你的基础和悟性。之后要看那些书呢?我不妨再列几本。Bjarne
Stroustrup的《C++程序设计语言》(The
C++
Programming
Language)一定要看,这本书里面对于C的一些基础概念的定义,比我见过的其他任何C语言书都要全,都要仔细;Bjarne
Stroustrup的《C++语言的设计与演化》(The
Design
and
Evolution
of
C++)和David
R.Hanson
的《C语言接口与实现
创建可重用软件的技术》(C
Interfaces
and
Implaementations
Techniques
for
Creating
Reusable
Software)一定要看,这两本书讲述了如何用C来实现异常处理、实现类型的封装和扩展等一些大的项目中经常用到的高级技术。
另外,即使是最经典最权威的书,也没有办法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《C
Reference
Manual》,是C语言标准的详细描述,包括绝大多数C标准库函数的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《Pointers
on
C》,特别地强调指针的重要性,