1、为什么include头文件后,就可以调用文件中声明的函数了?
头文件中一般只是函数和变量的声明,编译器需要知道函数传递的是什么参数,否则调用的地方
不知道如何设置寄存器和栈等一些相关信息。至于函数的位置,由于在其他的编译单元中,需要链接
时才能找到。
头文件中包含了函数的声明,其具体的函数(即函数的位置)可以在cpp文件中,也可能在某个组件
(如.dll文件,.a文件,.lib文件等)中。引用头文件是为了在编译的时候能够通过。
链接时才把各个.cpp文件、.a文件等连接起来,找到各个引用函数的位置。
include高速编译器需要这些头文件中的函数和变量,然后编译的时候,编译器按照优先级查找相关库,
然后找到这些函数的实现,或者链接,或者给出这些函数的地址(动态链接中),然后生产可执行文件。