分块开发中的头文件问题
常常看到一个c文件,如b.c包含了某个头文件,如a.h.
在a.h中,声明了若干函数如next(arg),但是没有函数具体实现.
当在a.c中include a.h后,也可以正常使用函数next(arg).不大
明白其中的原理,请达人相告 :
a.h:(只做了声明,没有具体实现)
////////////////////////begin
void record(some args);
int next(some args);
/////////////////////end
a.h中的函数仅仅是一个用户界面,其具体实现完全
在别的.c文件中实现的,例如可能是a.c:
//////////////////////
void record(some args)
{
some code;
}
int next(some args)
{
some code;
}
不知道我有没有说明白,呵呵,谢谢指教~~~
[解决办法]
编译的时候只需要知道这个名字是个函数就可以了。 然后会在这个位置留个占位符, 并把函数名字放到 obj 中。 连接器扫描所有的 obj 文件中的符号, 把对应的地址添在占位符上。
[解决办法]
正如楼上所述。
头文件的目的,告诉编译器,该函数不在本文件中,要到其他文件去找。C中函数声明隐含为extern。