C陷阱与缺陷读书笔记

**

C陷阱与缺陷读书笔记

**

前言:

我是一名学生,目前在大学读书。大一的时候进了知乎四大坑的专业,目前正在努力的跳出坑。《C陷阱与缺陷》一方面可以教你如何因为一点小错误而让整个程序垮掉,一方面也由于出书时间长而过于纠结C语言的一些细枝末节,我认为初学者在读书这本书时可以选择性的精读,切不可因为一些东西而浪费编程的热情。(由于是在可移植性缺陷部分)

主要内容:

其实有两类大问题,分别是在程序开发中的问题,以及程序开发之后连接器的问题。

在程序中

  • switch语句
  • 函数声明
  • 指针与数组
  • 整数溢出
  • 不对称边界

switch语句

switch语言的问题是很多初学C语言的人不会遇到的。如果没有break语句可能会出现很多意想不到的毛病。而且,如果你理解之后,也可以充分利用这个特点。

函数声明

函数声明,其实函数声明的意义就是告诉程序这个函数的返回值类型,参数类型。如果没有声明,系统会默认为整型而出现故障。所以在函数声明的时候参数的名称不重要,重要的是参数。

指针与数组

通过指针调用数组会节省很大的空间,而且指针比较灵活,可以发挥他的兼容性,而且利用指针也可以充分理解迭代器在容器中的应用。
而且对于如何理解指针,指针函数,函数返回指针有帮助。

整数溢出

整数溢出问题之前在LeetCode中遇到过,不知道如何处理,现在一想,利用负数空间大于正数空间的原理处理真的是一个精妙的方法。

不对称边界

感觉这是这本书对我而言最最有价值的东西,他给了我一个从不对称的角度去思想问题的方法。因为编程中起始点是0而不使1,所以不对称边界是一个很好的解决问题的方法。

我建议初学语言的人,先不要采用宏定义,虽然可以省去函数调用的时间,但是由于宏本身的简洁带来了一系列的问题。宏的精髓,是完全一模一样的代码代替,尤其在自加自减问题上带来了问题。


在程序间

其实第四章本身就是教你如何处理程序间的变量问题,变量声明兼容之类的问题。当然我认为这段在目前的作用有限,因为目前的工程语言在这个部分都是简化,没有像C语言那么复杂。
所以我会在遇到这些问题之后再来研究这些东西,而且我从来不认为读完一本书就要吸收掉百分之百的东西。很多东西对于你目前来说是没用的,尤其是我是以一个学生的身份,我没有参加过工程训练,我没遇到过,我自然没有感受。
但是书就在那里,你遇到了,就去看。最可悲的不是你不知道,而是你不知道如何去解决。

你可能感兴趣的:(读书笔记,IT,读书笔记,C语言,学生,计算机)