读书笔记:Linux C 一站式编程 C语言部分

读书笔记:Linux C 一站式编程 C语言部分

这次看的这本书:Linux C一站式编程,是由宋劲杉老师编写的专门用于介绍C语言和Linux系统的一本入门教材。本科系统课老师在推荐阅读中也提到过这本书。由于当时计算机系统上课要求看CSAPP,所以并没有什么时间来看这本书。而在工大在对CS走马观花之后,来到了现在研究生阶段,对C语言编程和Linux有了更多的兴趣,决定把这本教材过一遍。

本书不是很短,分为三编,C语言入门、C语言本质和Linux系统编程。这次先把C语言的部分过完,Linux系统编程的部分另记一篇。

特点

要讲到本书的特点很自然地要和CSAPP比较。在读的时候脑子中不由自主地想起CSAPP的知识,或许如果读者对操作系统和汇编有更深理解的时候想法又会不一样吧。但事实上它讲授的深度远远不能跟CSAPP相比,但这本书更加鼓励你去实操,在Linux系统上操作一遍,操作的深度不会很高,但是对程序、预处理文件、链接文件、可执行文件之间的关系理解会更清晰。

本书在讲解C语言本身特性时,讲解会比较仔细。不同版本、一些使用容易出bug的点都会讲解清楚,对于系统学习C语言会很有帮助。其他关于数据结构和计算机体系的部分都是属于介绍的性质, 可以把你领入这些领域,让你知道有那些面向就为止。

主要内容

  • C语言程序的基础概念:常量、变量、表达式、函数、分支、循环、结构体、数组

    这部分就相当于过一遍基础知识,已经用过C语言的人可以简单查漏补缺。比如说就重新帮我梳理了声明、定义、作用域等知识,搞清楚了运算符和左值右值等概念。

  • Linux系统上的运行、调试方法

    没有几节是具体说是教我们怎么使用Linux系统运行调试程序的,但是作为一本以 “Linux” 开头的书籍,它里面无处不在地介绍了Linux下程序的运行方式。当然也有专门讲 gdb 怎么用的章节。

  • 基础的数据结构和一些算法

    第一部分结束时讲了栈、队列,第二部分结束时介绍链表、二叉树和哈希表。

    介绍算法的部分感觉可以快速过,因为和专业的算法书相比是没啥系统性,不如直接看数据结构或者算法导论什么的。

  • 计算机中存储、表示、体系结构基础和指针

    主要讲解:整数浮点数的表示、数据类型转换、各类运算、地址设备、内存等级等知识。如果学过CSAPP,这一块基本就是基础知识复习,这本书也只是一个粗浅的介绍。如果是初学者,也可以用来对存储方式和体系结构有一个初步认识。

  • 汇编、链接、预处理过程

    汇编这块算是比较完整地过了一遍函数调用栈帧的变化过程。但是这本书会带着你进行一系列的汇编以及反汇编,让你对存储布局的印象能更加深刻。链接也是一样,与上课时看老师行云流水的操作不同,自己操作一遍链接会对共享库和静态库的区别、Linux系统组织等等有更好的认识。

    这一块在读者已经熟悉C语言基础的情况下详细讲解了定义与声明,也介绍了虚拟内存、宏和头文件的概念,这些都能帮读者理解、并建立更加庞大复杂的C语言项目。

  • Makefile、接口、C标准库等具体的技术内容

    这部分内容的联系没有那么紧密,几个部分单独拿出来都能写本书,比如接口这部分就能在软件构造中就能有更加详细的介绍。但是这本书中算是把和C语言相关的内容都拿出来综合地讲了一遍,对完整了解C语言会有帮助。

体会

把C语言部分过了一遍之后,感觉这确实是一本工具书。书中的很多内容应该是学习编译原理、操作系统之后才能完全理解的内容。如果你已经很熟悉Linux和C语言编程,看一遍也不吃亏,因为看的非常快,还能查漏补缺;如果是新人,则可以作为一本比较好的入门教材,这本书还有很多习题,配套练习也蛮不错。作为一本敲门砖,可以让最基础的学习者找到很多可以深入的面向。最后引用豆瓣上用户 cykerway 的一句评价:“‘我本来就是菜鸟一个,怎么了?国内这破环境,真正的大家才不稀罕写书,都捞钱去了。’其实中文书水平普遍低下,主要就是缺少宋劲杉老师这样的‘菜鸟’。”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值