今天是除夕,贴了一上午的对联,吃完午饭就稍微学习一下,晚上就是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/文件夹中搜索导入。
" " 是优先从当前文件夹中搜索导入。