原创首发于CSDN平台,文章转载请注明出处,加上原文链接,谢谢!
https://blog.csdn.net/weixin_46959681/article/details/114939789
文章目录
分文件编程的实际作用
现今项目开发的实际过程中,所有的代码文件不可能全部集中在 一个文件 中。出于对开发效率、产品上线等实际因素的考虑,在实际项目的开发过程中必须要对项目进行分文件编程的操作。
|经典场景 — WIFI智能小车
在智能WIFI小车的开发中,涉及到以下几个模块:
- WIFI 的配置
- 串口的适配
- 超声波测距
- 电机的驱动
……
必须在以上几个模块经过实际的测试,确定可靠性的前提下,才能整合在一起形成一个产品。
|分文件编程的优势
不止是WIFI智能小车的案例,其实在任何一个项目中使用分文件编程都能体现以下的优势:
- 模块化编程
- 主函数直接调用
- 方便调试
- 使主函数代码简洁
- 在实际开发过程中划分功能责任
代码演示 — — 加减乘除计算器
加减乘除计算器 一共由三个部分的代码构成:
- 主程序代码
calculatorT.c
- 头文件声明
calcufuncs.h
- 算法模块编程
calcufuncs.c
下面我们来看源代码。
|主程序代码 calculatorT.c
/* calculatorT.c */
#include <stdio.h>
//第二个头文件为什么使用双引号?
#include "calcufuncs.h"
int main()
{
int data1;
int data2;
int ret;
float retfloat;
printf("Please input the first number:\n");
scanf("%d",&data1);
printf("Please input the second number:\n");
scanf("%d",&data2);
printf("Input Over.\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);
retfloat = div(data1,data2);
printf("%d/%d=%f\n",data1,data2,retfloat);
return 0;
}
|头文件声明 calcufuncs.h
/* calcufuncs.h */
int add(int x, int y);
int min(int x, int y);
int mul(int x,int y);
float div(int x, int y);
|算法模块编程 calcufuncs.c
/* calcufuncs.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;
}
float div(int x, int y)
{
return (float)x/y;
}
运行结果:
头文件 #include
使用冒号与尖括号的区别
在博文第二节的头文件声明中,我们看到了头文件部分使用了 双引号。那么这种方式与使用尖括号又有什么区别呢?
- 代码中的头文件使用尖括号告诉编译器从系统默认的目录开始开始查找。使用指令
ls /usr/include/
显示本地的头文件。 - 代码中的头文件使用了双引号意为,系统首先会从当前路径找,但在无所获的情况下,再去系统默认目录中查找。
文章更新记录
- 初稿竣工。 「2021.3.17 19:20」
- 增加 “头文件
#include
使用冒号与尖括号的区别” 一节。 「2021.3.17 19:34」