文章参考于文献:《C陷阱与缺陷》[美]Andrew Koening
典型的链接器把由编译器或汇编器生成的若干个目标模块,整合成一个被称为载入模块或可执行文件的实体–该实体能够被操作系统直接执行。
链接器通常把目标模块看成是由一组外部对象组成的。每个外部对象代表着机器内存中的某个部分,并通过一个外部名称来识别。因此,==程序中的每个函数和每个外部变量,如果没有被声明为static,就都是一个外部对象。==某些C编译器会对静态函数和静态变量的名称做一定改变,将它们也作为外部对象。由于经过了“名称修饰”,因此它们不会与其它源程序文件中的同名函数或同名变量发生命名冲突。
一、应对C语言标准变更
二、标识符名称的限制
三、整数的大小
四、字符是有符号整数还是无符号整数
五、移位运算符
六、内存位置0
七、除法运算时发生的截断
八、随机数的大小
九、大小写转换
十、首先释放,然后重新分配
十一、可移植性问题的一个例子