为什么又报了段错误?
2021-12-14 本文已影响0人
乘瓠散人
“尽管程序员能用高级语言驱动计算机完成指定的计算任务,可是却不一定能很清楚地知道计算机是如何解释和执行程序代码的。”
比如你平常运行算法程序时,如果执行结果错误,你肯定会想“哦,我代码写的有bug”;但是如果遇到了段错误,你大概率会有些抓狂(因为你把握不住原因),然后把锅甩给计算机。

可是,计算机运行的不是你写的代码吗?作为完全靠指令行事,无条件服从你的命令的工具机器人,计算机何错之有?所以锅还是你的,你在设计程序时,是否意识到计算机系统的重要性,建立起程序被执行的数据或指令流图,明白程序被执行时,到底发生了什么事?别问我,我是都没有想过,我脑子里全是浆糊。
《深入理解计算机系统》—— Computer Systems:A Programmer's Persepctive,简称为CSAPP,这本书就是为我们指点迷津,好与计算机工具人沟通的。该书通过程序员的视角来介绍计算机系统,描述了你写的高级程序代码如何转换成计算机所能理解的格式(比如汇编语言),以及计算机解释和执行这些中间格式的程序的过程,从而有助于我们更好地和计算机进行沟通,设计出更加鲁棒健壮的程序。当然,如果再遇到了段错误,你也能心平气和地快速定位排错,及时解决,提早下班吃火锅。
声明:本文集内容来自于对书籍《深入理解计算机系统》的解读和整理,因此该文集的所有文章都引用了《深入理解计算机系统》,特此说明,在之后的文章中不再专门标明该引用文献。