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
posted @ 2021-03-07 00:12  小默同学  阅读(1161)  评论(0编辑  收藏  举报