比如你要写一个头文件叫utils.h,里面声明了一个一个函数int add(int a, int b),那头文件里的内容是这样的:
#ifndef UTILS_H
#define UTILS_H
int add(int a, int b);
#endif
-------分割线------
然后再创一个文件utils.c,里面定义函数add
#include "utils.h"
int add(int a, int b)
{
return a + b;
}
-------分割线------
然后假如你想在main.c里使用这个头文件,就把utils.h utils.c放到main.c所在的文件夹里,然后在main.c里这么写
#include <stdio.h>
#include "utils.h"
void main(void) {
printf("%d", add(2,3)); //5
}
------分割线------
上面有些不是硬性规定,但是希望你能遵守,养成好习惯,在头文件里面只声明,定义只写在.c里面
还有,因为你现在有两个.c文件了,所以编译的时候不要忘了编译utils.c。(.h是不用编译的)
追问我之前就这样写,不行啊
追答怎么个不行了
追问
就这样,第一个是报错
追答你是不是没有把那个.c加入到项目里面
你试试用命令行编译,比如
gcc -o tanchishe.exe tanchishe.c utils.c
追问我用的编译器是c-free,这个不用建项目
追答c-free是编辑器吧,我猜你的编译器还是gcc。总之你看看有没有什么编译选项,项目属性之类的,改改。c-free我没用过所以你自己找找。
总之问题在于你没有告诉他其实你有两个源文件要编译
或者你新建一个项目然后把这三个文件都加进去试试
追问我回头用VS试试吧