框架设计模式问题请高手赐教

假如文件a.c和b.c,a.c文件要调用b.c文件中的函数f,如何做到不引用b.c的头文件,如何实现这个功能

在a.c里面写
extern void f();

int main()
{
f();
}

在b.c里面写
void f()
{
...
}
把这两个文件分别编译为a.obj b.obj
再链接成exe
当然,编译链接也可以借助vc之类的ide完成