Linux库的分文件编程

本文探讨了在除夕利用分文件编程技巧,通过函数模块化实现代码组织,重点讲解了头文件与源文件的区别,以及如何提高代码可维护性和调试效率。通过实例演示了如何将`add`, `min`, `mul`, `div`等函数分离到单独文件,并通过`#include`引入。
摘要由CSDN通过智能技术生成

今天是除夕,贴了一上午的对联,吃完午饭就稍微学习一下,晚上就是Happy之夜了
除夕过后,你将涅槃重生,逆风翻盘,这一局,是必胜局!


屁话太多,进入正题:
分文件编程好处:

        可以将不同的功能模块交给不同的人做。

  • 网络
  • 线程
  • 电机
  • 超声波
  • ···

好处:

  • 功能责任划分
  • 方便调试
  • 主程序简洁

例:

一个含有自定义函数和主函数的代码

#include <stdio.h>

int add(int x,int y)
{
	return x+y;
}

int min(int x,int y)
{
	return x-y;
}

int mul(int x,int y)
{
	return x*y;	
}

int div(int x,int y)
{
	return (float)x/y;
}

int main()
{
	int data1;
	int data2;
	int ret;
	float ret_float;
	printf("请输入数字1:\n");
	scanf("%d",&data1);
	printf("请输入数字2:\n");
	scanf("%d",&data2);
	printf("结果为:\n");
	ret = add(data1,data2);
	printf("%d + %d = %d\n",data1,data2,ret);
	ret = min(data1,data2);
	printf("%d - %d = %d\n",data1,data2,ret);
	ret = mul(data1,data2);
	printf("%d * %d = %d\n",data1,data2,ret);
	ret_float = div(data1,data2);
	printf("%d / %d = %f\n",data1,data2,ret_float);

	return 0;
}

正常运行:
在这里插入图片描述


分文件后:

caclate_T.c

#include <stdio.h>


int main()
{
	int data1;
	int data2;
	int ret;
	float ret_float;
	printf("请输入数字1:\n");
	scanf("%d",&data1);
	printf("请输入数字2:\n");
	scanf("%d",&data2);
	printf("结果为:\n");
	ret = add(data1,data2);
	printf("%d + %d = %d\n",data1,data2,ret);
	ret = min(data1,data2);
	printf("%d - %d = %d\n",data1,data2,ret);
	ret = mul(data1,data2);
	printf("%d * %d = %d\n",data1,data2,ret);
	ret_float = div(data1,data2);
	printf("%d / %d = %f\n",data1,data2,ret_float);

	return 0;
}

caclate_F.c


int add(int x,int y)
{
	return x+y;
}

int min(int x,int y)
{
	return x-y;
}

int mul(int x,int y)
{
	return x*y;	
}

int div(int x,int y)
{
	return (float)x/y;
}

caclate_F.h


int add(int x,int y);	//注意有分号

int min(int x,int y);

int mul(int x,int y);

int div(int x,int y);


将caclateF.h写在caclate_T.c中,命名为 caclate_T2.c

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

int main()
{
	int data1;
	int data2;
	int ret;
	float ret_float;
	printf("请输入数字1:\n");
	scanf("%d",&data1);
	printf("请输入数字2:\n");
	scanf("%d",&data2);
	printf("结果为:\n");
	ret = add(data1,data2);
	printf("%d + %d = %d\n",data1,data2,ret);
	ret = min(data1,data2);
	printf("%d - %d = %d\n",data1,data2,ret);
	ret = mul(data1,data2);
	printf("%d * %d = %d\n",data1,data2,ret);
	ret_float = div(data1,data2);
	printf("%d / %d = %f\n",data1,data2,ret_float);

	return 0;
}

在命令行中输入:

gcc caclate_F.c caclate_T2.c

同样也成功运行:
在这里插入图片描述


头文件中 < > " " 的区别

< > 是优先从/usr/include/文件夹中搜索导入。
在这里插入图片描述

" " 是优先从当前文件夹中搜索导入。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LEO-max

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值