第8章,为什么程序员无法分清万圣节和圣诞节

度量系统不同

Dec 25 ==Oct 31

25(d)=31(o)

在等待时类型发生了变化

但在ANSI中有写地方已经褪色了

原型之痛

注意K&R 的函数声明与ANSI C的函数声明(原型)不同,后者有参数类型。因此:

而在ANSI中,如果声明了函数原型缺省参数提升就不会发生。如果参数声明为char,而实际

所传递的也是char编译器就会假定参数是准确声明的,于是便不进行类型提升,并据此产生代码。

原型在什么地方会失败

所以你不要试着为K&R C函数定义增加函数原型;

有时候函数定义放在函数调用处也会影响这里的局势,大家可以看C专家拜年词177页;

函数原型有很多好处,我们应该把函数定义的文件里包含该函数原型的文件,这样做还可以检测函数定义和原型之间的不匹配;

函数原型在被调用的文件中被包含可以检测调用时是否传递正确的参数。

不需要按回车键就能得到一个字符

详情看C专家编程181页

用C语言实现有限状态机

就是自动设定好下一个状态做什么,以及整套状态转换。在C语言中,有好几种方法用来实现FSM,但它们绝大多数都是基于函数指针数组。

详情请看P183页

软件比硬件更困难

先让程序总体运行,再完善细节的实现

如何进程强制类型转换,为何要进行类型强制转换

你可能感兴趣的:(第8章,为什么程序员无法分清万圣节和圣诞节)