重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
参考:链接: 多文件编程_coolwriter的博客-博客_多文件编程.
专注于为中小企业提供成都网站设计、做网站、成都外贸网站建设公司服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业广汉免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。模块化编程,就是把一个程序文件,分为多个文件一起编程的过程。把不同功能的函数封装到不同的文件中。一个.c文件和一个.h文件被称为一个模块。
原因1:开发C程序时,当代码量较大功能且复杂,单一文件程序会使得文件非常巨大,代码量非常大,成千上万行的代码在一个文件中不便于修改和维护。
原因2:在工作中,属于团队合作开发,为了有效的提高团队开发的分工协作效率。需要多文件开发。各个功能模块得分成多个文件分别派发给团队成员。提高开发效率,节省时间。
二、分文件编程流程第一步:创建 功能模块.c 文件(有多少个功能模块,就创建几个,并且命名以模块功能名为主)。
第二步:把源程序的子函数(即功能模块)都分别放在对应第一步功能文件里。
第三步:创建xxxx.h 头文件,此文件内容只留下所有功能函数原型,函数体去掉,加分号;
第四步:源程序 添加 第三步的头文件。即#include"xxxx.h"
第五步:编译: gcc 源程序.c 功能模块.c -o 执行程序
三、示例代码演示(c语言)扩展:#include
和#include"xxxx.h"区别 #include
此种写法:是优先从/usr/include/下文件下去找头文件 #include"xxxx.h"此种写法:是优先在当前位置找。再去/usr/include/找
例子1:输入两个数,求它们的 加 减 乘 除。
分析:此例子,只有一个同类功能,即加 减 乘 除 。即只需创建一个 arithmetic.c 文件 ,另加一个功能头文件。如:arithmetic.h
3.1、源程序(完整代码 source.c)#include//加减乘除 功能函数
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#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、执行结果预告:下一节静态库与多态库的制作与使用
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧