当前位置: 首页 > article >正文

51单片机——模块化编程

1、模块化编程介绍

传统方式编程:所有的函数均放在main.c里,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码的组织和管理,而且很影响编程者的思路。

模块化编程:把各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数的声明,其它.c文件想使用其中的代码时,只需要#include "XXX.h"文件即可。使用模块化编程可极大的提高代码的可阅读性、可维护性、可移植性等。

2、模块化编程框图

3、模块化编程注意事项

.c文件:函数、变量的定义

.h文件:可被外部调用的函数、变量的声明

任何自定义的变量、函数在调用前必须有定义或声明(同一个.c)

使用到的自定义函数的.c文件必须添加到工程参与编译

使用到的.h文件必须要放在编译器可寻找到的地方(工程文件夹根目录、安装目录、自定义)

4、C预编译

C语言的预编译以#开头,作用是在真正的编译开始之前,对代码做一些处理(预编译)

此外还有#ifdef,#if,#else,#elif,#undef等

5、模块化后的代码

该代码由上一节(数码管控制)修改而来

编译无错误

 


http://www.kler.cn/a/284896.html

相关文章:

  • 搭建Python2和Python3虚拟环境
  • MybatisPlus入门(十)MybatisPlus-逻辑删除和多记录操作
  • 【vue2.0入门】vue基本语法
  • three.js 杂记
  • 在 Service Worker 中caches.put() 和 caches.add()/caches.addAll() 方法他们之间的区别
  • LeetCode【0031】下一个排列
  • Kafka分布式集群部署实战:跨越理论,直击生产环境部署难题与解决方案,性能调优、监控与管理策略大揭秘,轻松上手分布式消息中间件
  • 【SQL基础】【leetcode】SQL50题
  • 『功能项目』技能释放【08】
  • Java设计模式【解释器模式】-行为型
  • 【QT线程学习】
  • PowerDesigner16.5 从mysql5.7逆向工程
  • ClickHouse的安装教程
  • 计算机网络概述(Internet结构和ISP)
  • matlab仿真 信道编码和交织(下)
  • 【docker】docker学习笔记
  • Datawhale AI夏令营 第五期 CV方向 Task3笔记
  • GD - GD32350R_EVAL - PWM实验和验证1
  • React原理之Diff算法
  • ESP32-S3 IDF框架 控制 WS2812 灯条:实现多种灯效
  • 【通过h5作为中转页跳转到微信小程序】
  • 【Linux】06.Linux 下的编译器——gcc/g++
  • 【C++ 第十八章】C++11 新增语法(2)
  • vue3+el-tale封装(编辑、删除、查看详情按钮一起封装)
  • 【HarmonyOS 4.0】@ohos.router 页面路由
  • ★ 算法OJ题 ★ 力扣11 - 盛水最多的容器