目录
0.相关链接
https://www.cs.cmu.edu/~213/schedule.html 链接
http://csapp.cs.cmu.edu/3e/labs.html
1.Great Realities
1.1数据溢出
Great Reality 1
Ints are not integers,floats are not reals.
例子1:
Is x^2 >= 0
Int's : May not.
Float's: Yes
例子2:Is (x+y)+z = x+(y+z)?
Unsigned & Signed int : Yes
Float's : May not.
(1e20+-1e20)+3.14 --->3.14
1e20+(-1e20+3.14) --->?
也许90%的时间下这个都是正常的,但是我们要知道这个数据的范围,有时候他们非常重要,
例如你正在控制一个火箭,你不能希望正向的推称为负向或者类似的东西.同样存在中所周知
的安全的漏洞实例,有人在某处写了那种预期为整数的代码,然后某个聪明人想知道是否可以
通过输入一个负数欺骗这个系统,并且让它作坏事.
结论:
我们要注意并且更好地理解临界情况,防止临界情况带来错误.
在编码的时候要考虑到这些不起眼却可能十分重要的事情.
1.2 你需要知道汇编
1.3 内存很重要
课程的有一个弹幕说:
gcc默认不检查数组越界,除非加编译选项,这个可以查阅一下这条弹幕是否正确.
1.4 性能也很重要
1.5 计算机不仅仅值只执行程序
2.课程相关
2.1 课程结构
2.2 课程的角度
2.3 213-yyds
2.4 学术诚信
2.5 教材
2.6 课程组成
2.7 获取帮助
2.8 关于实验与考试的一些约定
2.9 实验与数据