Linux库引入之分文件编程
分模块的编程思想:a.功能责任划分 b.方便调试 c.主程序简洁
这里我以俩个整数的加减乘除的例子描述
整体代码:demo1
#include <stdio.h>
int add(int data1,int data2)//调用加法函数
{
int ret;
ret = data1+data2;
return ret;
}
int min(int data1,int data2)//调用减法函数
{
int ret;
ret = data1-data2;
return ret;
}
int mul(int data1,int data2)//调用乘法函数
{
int ret;
ret = data1*data2;
return ret;
}
float dev(int data1,int data2)//调用除法函数
{
float rcv;
rcv = (float)data1/data2;
return rcv;
}
int main(void)
{
int data1;//定义第一个整形变量
int data2;//定义第二个整形变量
int ret;//用来接收到返回的整数值(加法,减法,乘法)
float rcv;//用来接收到返回的浮点数值(除法)
printf("请输入第一个数:\n");
scanf("%d",&data1);
printf("请输入第二个数:\n");
scanf("%d",&data2);
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);
rcv = dev(data1,data2);//除法函数
printf("%d/%d=%f\n",data1,data2,rcv);
return 0;
}
我们之所以要分文件编程,就是因为想让main主函数里面简单明了,较为容易的阅读和理解有思路的编程的内容。
所以第一步:copy2份demo1.c。
demo1.c、demo2.h、demo3.c
demo1.c里面去掉主函数和头文件如下:
int add(int data1,int data2)
{
int ret;
ret = data1+data2;
return ret;
}
int min(int data1,int data2)
{
int ret;
ret = data1-data2;
return ret;
}
int mul(int data1,int data2)
{
int ret;
ret = data1*data2;
return ret;
}
float dev(int data1,int data2)
{
float rcv;
rcv = (float)data1/data2;
return rcv;
}
demo2.h的作用就是函数的声明如下:
int add(int data1,int data2);
int min(int data1,int data2);
int mul(int data1,int data2);
float dev(int data1,int data2);
那么demo3.c里面就需要加入demo2.h的头文件如下:
#include <stdio.h>
#include "demo2.h"
int main(void)
{
int data1;
int data2;
int ret;
float rcv;
printf("请输入第一个数:\n");
scanf("%d",&data1);
printf("请输入第二个数:\n");
scanf("%d",&data2);
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);
rcv = dev(data1,data2);
printf("%d/%d=%f\n",data1,data2,rcv);
return 0;
}
这样我们编译:gcc demo1.c demo3.c
就不会出现错误和警告了。
编译结果:
在这里需要补充一下<>和""的头文件的区别:
<>是指默认情况下gcc会从/usr/include/路径里面找。
""是指优先从当前路径底下找,找不到再从/usr/include/底下找。