c语言中多个文件的编译问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 08:06:41
例如有三个文件:
//文件1:a.h,内容如下:
void f();
//文件2:a.c,内容如下:
#include "a.h"
void f() {...}
//文件3:main.c,内容如下:
#include "a.c"
void main() {f();}
这样编译时对的,但是如果main.c的头文件include的是"a.h",就编译不对了,这是为什么呢?

应该用vc之类的IDE建立工程,然后将所有文件添加进工程里,这样就可以写成include .h了。
具体原理我不清楚,我估计是IDE在编译时自动将.c的文件编译成库(library),再由.h头文件来“索引”这些函数

要将a.c添加到你的工程里。

void f();是一个函数声明
而在a.h中没有f这个函数,在main又调用了f,找不到函数 当然不对