查书备忘录。C++编译器寻找函数的流程。
防杠:原文摘抄自C++ PRIME PLUS第六版
假设在程序的某个文件中调用一个函数,如果该文件中的函数声明指出该函数是静态的,那么编译器将只在该文件中查找函数定义;否则编译器将在所有的可执行文件查找,如果此时找到两个定义,编译器则报错。
因为每个外链性质的函数只能有一个定义,如果在程序文件中没有找到,编译器将在库中搜索。这意味如果定义了一个与库函数同名的函数,编译器将使用程序员定义的版本,而不是库函数(然而C++保留了标准库函数的名称,有些编译器会要求显示指出搜索那些库)