我读了几篇帖子并得出结论,extern告诉编译器"这个函数存在,但它的代码在其他地方.不要惊慌." 但链接器如何知道函数的定义位置.
我的案例: - 我正在研究Keil uvision 4.有一个头文件grlib.h,主函数在grlib_demo.c(它包含grlib.h).现在,有一个函数GrCircleDraw()在Circle.c中定义并在grlib_demo.c中调用,还有一个语句
extern void GrCircleDraw(所有参数);
在grlib.h中.我的查询是链接器如何知道GrCircleDraw()的定义,因为Circle.c不包含在grlib.h和grlib_demo.c中
注意: - 文件grlib.h和Circle.c位于同一文件夹中.代码运行成功.