这三章主要讲了C语言的链接、库函数、预处理。还是有点晦涩难懂啊。
一个C程序是可以有多个部分组成的,但是编译器每次只能编译一个文件,找出其中的错误。某些C语言实现提供了一个称为lint的程序,可以捕获大量的此类错误。连接器一般是与编译器分离的,编译器是把C程序“翻译”成对连接器有意思的形式,这样连接器就能“读懂”C程序了。
对于同名引起的冲突,我们可以将这些放到一个源文件中,并用static修饰,用于若干函数共享这些数据。还有一个好方法就是每个外部对象只在一个地方声明,这个声明的地方一般就在一个头文件中,需要用到该外部对象的所有模块都应该包括这个头文件。
C语言中默认的函数类型为int。任何函数都应该在第一次被调用之前进行声明或者定义,若不这样,函数的默认类型就为int了。函数声明时,形参除了float,short,char类型的参数,在函数声明中完全可以省略参数的类型说名。
宏定义#define,预处理命令,在编译之前完成,可以简化我们的代码。有时候看上去像个函数,却没有函数的开销。宏提供了对字符的替换功能,却不使用对象。
宏的使用是:#define 宏名 替换内容 其中的空格需要注意。不然会引起错误。在使用宏的时候,如果有对参数的操作,不能重复多次(例如++,——),每一次替换都会使操作重复一次,从而带来错误。确保宏没有错误,应该注意使用括号。
一定要注意的是,宏只是替换!!