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\n",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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端