《CSAPP》第三章之学习笔记(一)
来源:互联网 发布:mac桌面显示磁盘 编辑:程序博客网 时间:2024/05/16 14:23
学习的理由
CSAPP,我一直对它恋恋不忘,因为每一次看了都很有收获,但又不能全部记住,而且感觉书很厚,一时半会儿也看不完,但是我觉得这本书是必须要看完的,无论如何,必须看完!因为它是我目前能看懂的比较好的技术书籍之一,其次它是一座通往各种技术的大桥,过了之后,可以继续顺利钻研各种技术了,比如操作系统等。
正文
按照曾国藩对经典书籍的阅读方法,每天读10页,进度正好,因为工作时间不允许看其他书,所以唯有利用晚上下班时间学习。
学习的方法是,看一段程序,然后用gcc编译一下,看看汇编代码如何,是否和书上的对得上,结果我发现了一些有趣的事情,比如:
- 如果-O1 优化编译,才会和书上对得上,而不加则编译的代码很难看,几乎和C代码是一一对应翻译的,而-O1优化的代码,则会简洁很多。另外如果加上-O2 ,则和原来的C语言代码对不上了,当然功能是实现了的。
- O2优化编译更有趣的是,对于参数不是指针的过程,它居然一句都不编译,直接略过,内部的思想是反正你不打算做有意义的计算,那干脆编译也省了。
- 再有就是一直被鄙视的goto语句,其实是个很好的辅助理解的工具,利用它可以将if-else,while,do-while,for循环统一的方式翻译成汇编代码,goto对应于汇编的jump语句。
- 学习了半天,终于能看懂switch 的汇编了,利用一个指针数组来索引跳转位置,非常高效啊,内心很佩服那些想出来这招的家伙们。
这周还没有阅读完第三章,期待下周能读完。读完后做课后的练习题,最后做拆bomb实验。
总结
- 凡是目前看起来吃力的书籍,那就是因为水平还不够,所以先放下它,看能看懂的那些经典书籍。
- 对知行合一的新体会,计算机程序设计,必须知行合一,你不知,如何行,你不行,如何知。具体来讲就是你不看书理解,怎么写代码;你不写代码,怎么能真正理解。
- 看书一定要专一,看完才看另一本,不然如猴子掰苞谷。以前我就是这么犯傻的,这山望着那山高。到头来啥都知道点,但是都非常肤浅。
阅读全文
0 0
- 《CSAPP》第三章之学习笔记(一)
- CSAPP第三章学习笔记(二)
- 工作学习笔记——CSAPP第三章
- csapp第二章学习笔记
- CSAPP深入理解计算机系统第二章学习笔记(1)
- csapp第三章读书笔记
- CSAPP第三章作业题
- CSAPP学习笔记(第一,二章)
- CSAPP学习笔记
- [CSAPP学习笔记] 栈帧
- CSAPP 学习笔记(1)
- CSAPP读书笔记(一)
- CSAPP(一)
- [CSAPP] 链接(一)
- CSAPP第七章笔记
- CSAPP笔记(概括)
- 《深入理解计算机系统-CSAPP》练习题笔记(一)
- CSAPP 学习笔记 Chapter one
- [LeetCode] Palindrome Number
- 输入一个三位数,再反向输出
- 栈的应用之括号匹配
- struts.xml分析(四)
- jpa常用注解讲解
- 《CSAPP》第三章之学习笔记(一)
- 简单工厂模式
- linux 的服务与进程管理
- Hadoop/MapReduce、Spark 朴素贝叶斯分类器分类符号数据
- C++学习笔记--const对象和this指针
- HTTP Status 500
- Maximum Length of Repeated Subarray(算法分析week12)
- javaScript基础 (四)
- Wannafly挑战赛4 解题报告