总结:
关于函数定义和声明有三类错误:
1、未声明函数;语法错误,在编译阶段报错
2、未定义函数;
3、重定义函数;(编译阶段和链接阶段都会报错)
源文件如何被计算机一步步处理?
Step 1:预编译——宏定义,将文件内的别名和缩写进行替换;并将include的文件内容原封不动地粘贴进来。
Step 2:编译——源文件经过预编译和编译过程,变成对象文件(.o/.obj)——这期间主要检查语法错误,例如函数未声明
Step 3:链接——对象文件经过链接,变为可执行文件(.out)——这期间会报:函数未定义或重定义错误,未定义使得计算机不知道如何实现这个函数,重定义使得计算机不知道执行哪一个函数定义;都执行就是可能世界语义了,会生成多个由不同语义函数组合而成的结果;由此可知函数定义放在哪个文件不太重要,对象文件链接的时候有就行。