C语言引入其他文件的函数
直接上代码:
/*function.c文件*/
#include "function.h"
int add(int a, int b)
{
return a+b;
}
/*function.h文件*/
int add(int a, int b);
/*a.c文件*/
#include <stdio.h>
#include "function.h"
int main()
{
int a = 1, b = 2;
int c = add(a, b);
printf("%d", c);
return 0;
}
上述代码的意思就是将function.c文件里面的函数引入到a.c文件中使用。需要建立function.h头文件和function.c文件。然后在就可以在文件中使用了。
踩坑一:将#include中的"function.h"写成了<function.h>
这样会报错:No such file or directory
原因区别就是:<>包裹的头文件会从系统自带的头文件中使用,而""包裹的头文件会从自己当前目录的头文件中找到和使用。
踩坑二:a.c:(.text+0x24): undefined reference to `add'
如果这样直接上代码用gcc编译会产生如下错误。因为在链接时发现找不到某个函数的实现文件。编写如下命令即可:
gcc -c a.c
gcc -c function.c // 这样会生成两个.o后缀的文件
gcc -o a.exe a.o function.o
这样就会编译生成a.exe文件,然后就可以运行了。
./a.exe