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后缀的⽂件
text函数什么意思gcc - a.o function.o
这样就会编译⽣成a.exe⽂件,然后就可以运⾏了。
./a.exe