linux库引用之分文件编程

一、为什么要分文件编程

参考:链接: 多文件编程_coolwriter的博客-CSDN博客_多文件编程.

模块化编程,就是把一个程序文件,分为多个文件一起编程的过程。把不同功能的函数封装到不同的文件中。一个.c文件和一个.h文件被称为一个模块。

原因1:开发C程序时,当代码量较大功能且复杂,单一文件程序会使得文件非常巨大,代码量非常大,成千上万行的代码在一个文件中不便于修改和维护。

原因2:在工作中,属于团队合作开发,为了有效的提高团队开发的分工协作效率。需要多文件开发。各个功能模块得分成多个文件分别派发给团队成员。提高开发效率,节省时间。

二、分文件编程流程

第一步:创建  功能模块.c  文件(有多少个功能模块,就创建几个,并且命名以模块功能名为主)。

第二步:把源程序的子函数(即功能模块)都分别放在对应第一步功能文件里。

第三步:创建xxxx.h 头文件,此文件内容只留下所有功能函数原型,函数体去掉,加分号

第四步:源程序 添加 第三步的头文件。即#include"xxxx.h"

第五步:编译:  gcc 源程序.c   功能模块.c  -o   执行程序

扩展:#include<xxxx.h>和#include"xxxx.h"区别

#include<xxxx.h>此种写法:是优先从/usr/include/下文件下去找头文件

#include"xxxx.h"此种写法:是优先在当前位置找。再去/usr/include/找

三、示例代码演示(c语言)

例子1:输入两个数,求它们的  加 减 乘 除。

分析:此例子,只有一个同类功能,即加 减 乘 除  。即只需创建一个  arithmetic.c 文件 ,另加一个功能头文件。如:arithmetic.h

3.1、源程序(完整代码 source.c)

#include<stdio.h>

  //加减乘除 功能函数
int add(int a, int b)
{
	
	return a+b;
	
	
	}

 int min(int a, int b)
 {
	 
	 return a-b;
	 
	 }

  int mul(int a, int b)
  {
	  
	  return a*b;
	  }

 
  float del(int a , int b)
{
	
	return (float)a/b;
	
	}

int main()
{
	int a;
	int b;
	int ret;
	float delret;
	printf("请输入第一个数\n");

	scanf("%d", &a);

	printf("请输入第二个数 \n");

	scanf("%d", &b);	
	printf("输入完毕\n");

	ret = add(a,b);
	printf("加法:%d+%d=%d\n",a,b,ret);


	ret = min(a,b);
	printf("减法:%d-%d=%d\n",a,b,ret);

	
	ret = mul(a,b);
	printf("乘法:%d*%d=%d\n",a,b,ret);
	
	delret = del(a,b);
	printf("除法:%d/%d=%f\n",a,b,delret);

	return 0;
	}

运行结果

 请输入第一个数
50
请输入第二个数 
5
输入完毕
加法:50+5=55
减法:50-5=45
乘法:50*5=250
除法:50/5=10.000000

 所有的代码都放在源程序里,如果代码量多,不方便修改,查错误也不好找,因此,把此代码分为   多文件编程。

3.2、把源程序中的功能模块代码放在另外一个文件里   如 :arithmetic.c

//文件名:arithmetic.c
//加减乘除 功能函数
int add(int a, int b)
{
	
	return a+b;
	}

 int min(int a, int b)
 { 
	 return a-b;
	 
	 }

  int mul(int a, int b)
  {
	  
	  return a*b;
	  }

 
  float del(int a , int b)
{
	
	return (float)a/b;
	}

3.3、创建功能头文件          如:arithmetic.h

//函数名:arithmetic.h
int   add(int a, int b);
int   min(int a, int b);
int   mul(int a, int b); 
float del(int a ,int b);

3.4、把头文件添加到源程序中 

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

int main()
{
	int a;
	int b;
	int ret;
	float delret;
	printf("请输入第一个数\n");

	scanf("%d", &a);

	printf("请输入第二个数 \n");

	scanf("%d", &b);	
	printf("输入完毕\n");

	ret = add(a,b);
	printf("加法:%d+%d=%d\n",a,b,ret);


	ret = min(a,b);
	printf("减法:%d-%d=%d\n",a,b,ret);

	
	ret = mul(a,b);
	printf("乘法:%d*%d=%d\n",a,b,ret);
	
	delret = del(a,b);
	printf("除法:%d/%d=%f\n",a,b,delret);

	return 0;
	}

3.5、执行结果

 

 预告:下一节静态库与多态库的制作与使用

猜你喜欢

转载自blog.csdn.net/weixin_47783699/article/details/128060963