头文件:func.h
包含函数的前向声明
int func(int i);
C源代码文件:func.c
包含实际的函数定义
#include "func.h"
int func(int i) {
return ++i ;
}
C语言源文件source.c
(实际程序):
#include <stdio.h>
#include "func.h"
int main(void) {
int res = func(3);
printf("%i", res);
}
我的问题是:既然#include
只是一个编译器指令,它将.h
文件的内容复制到#include
所在的文件中,那么.c
文件如何知道如何执行函数?它只得到了int func(int i);
,那么它怎么实际执行函数呢?它如何获得对func
的实际定义的访问权限?头文件是否包含某种“指针”,指出“那就是我的定义,在那里!”?
它是如何工作的?