C语言调用另一个文件的方法

当一个项目比较大之后,我们希望分模块管理,这个时候就需要把一部分方法放在独立的文件中。

在main方法中如何引用这些文件呢?

一、gcc

比如我有一个function.c文件,里面包含了我的函数体

#include "function.h"

int add(int a,int b){
    return a+b;
}

然后我把它抽象到一个function.h文件中

#include<stdio.h>

int add(int a,int b);

在main.c中就可以这样写

#include "function.h"
#include<stdio.h>

int main(){
    int a=1,b=2;
    int c=add(a,b);
    printf("c=%d
",c);
    return 0;
}

编译main.c

gcc main.c function.c -o main
./main

 二、make和makefile

如果我们项目中有很多文件需要编译,用前面的方式可能会累死,linux提供了make命令帮我们编译大型项目,不过需要我们提供一个配置文件makefile

比如上面的项目,makefile大概这么写

1 all:main
2 main :main.c function.c
3     gcc -o main book1.c function.c
4 clean:
5     rm -f main

第一行:需要编译的目标

第二行:目标依赖的源文件

第三行:编译命令,必须以tab开头

第四行:清理

第五行:清理命令

makefile有宏变量可以用,可以简化Makefile的书写,比如

$@ : 用在生成规则中,表示当前目标
$< :  用在生成规则中,表示当前目标的第一个依赖目标
$^ :  用在生成规则中,表示当前目标的所有依赖目标

那上面的Makefile可以简化为

all:main
main :main.c function.c
    gcc -o $@ $^
clean:
    rm -f main
原文地址:https://www.cnblogs.com/wangbin2188/p/14913452.html