连接
1、extern 关键字表示对外部对象的引用,其定义只能在程序的某个地方进行,且只能定义一次。另外尽量少使用extern多处引用外部变量,如若干个函数需要共享一组外部对象,可以将这些函数放到一个源文件中,把需要用到的对象也放在同一个源文件中以static修饰符声明,static修饰符可以起到减少命名冲突的作用,函数也一样。
2、如果一个函数在被定义或声明之前被调用,那么它的返回类型默认就是整型,因此在函数调用前就定义或声明所要使用的函数,同时确保其声明的类型是一致的。
3、处理多文件多次声明的问题,比较好的方法是将需要用到的外部对象的所有模块放到头文件中,当需要用到的时候,包含这个头文件即可。
库函数
1、对库函数返回的数据类型、参数类型要清楚,否则会出现“截断”,整型溢出等情况。
比如参数需要的是一个负数,而参入的是sizeof操作表达式,其返回的unsigned值,则必须先将其转换称有符号数再将其反号
2、如要对某个文件同时进行输入和输出操作,必须在其中插入fseek函数的调用,以改变文件的状态。网上有具体分析
3、如要对标准输入输出缓存一定数据量再进行实际操作,可通过setbuf函数实现,直到其缓冲区填满或直接调用fflush。平时调试打印信息如printf注意是否以‘\n’结尾,否则会先缓存直到遇到换行符或缓冲区满才输出打印。
4、警惕函数返回局部声明的数组数据,其在函数退出时,会释放数组内容。如缓冲区是动态分配的,不能忘记最后要释放该缓冲区。<