一直以来 都非常困惑,,,当程序量 变大时,,,如何增强 程序 的 可读性 成为了 越来越迫切的问题,,也曾经 不断尝试 了很多次,,,除了 规范 程序 的书写,,,,在程序中 增加 注释,,,我想着,,如果 能够 把程序 模块化,,会比之前 所做的 更好,,,就是 不同功能的 模块 独立出来,,不仅 方便 今后的 调用,,还使自己 的 程序 更加明了,,,,望 高手 指点,,,谢谢,,,我主要是 单片机 编程 ,, 想解决的问题 就是 如何 合理 正确的 建立 .h 头文件
这是个很开放的话题,我简单说说我的看法;
1.模块的划分:
模块的划分 和 函数的划分很类似。
应该把握为什么而划分,是为了区分程序中的不同部分而划分,这就类似于 函数是为了区分某个过程中的几个更加具体的更加单一的子过程,或者说,为了完成一个很纯粹的很基本的操作而划分的。
不要对面向对象太过热衷,面向过程虽然似乎成了一个很落后的东西,但事实上,面向过程在很多地方,比如我们这一行,单片机C编程威力巨大。很多事情没有绝对的是非好坏,只看你怎么看待。
理解了这个核心的原因了,心里就有底。
千万不要 分函数,分模块,分源文件是单纯的减少你要看的 代码长度,如果是那样,一点没有意义。
函数也好,模块也好,源文件的个数和长度也好,这些都只是外表,不是核心。
所以,一个层次划分的好的模块,也许你看着很长很长,但只要你会看,你一下子就跳过去几十行上百行,对整个程序把握起来还是很容易的。
2.回到你的问题 源文件和头文件
原则上,一个模块,都应该给它 一对 命名相同的 源文件,头文件。
有时候,一个模块还可以细分为几对 源文件头文件
——和前面说的一样,事实上,到底是多少对文件都不是关键,关键是你在整体上如何设计,组织程序的结构。
这里,我推荐去看一些比较典型的程序,可以作为自己参考的范本。
最好的莫过于C标准库,PJP有一本书专门论述C89标准库的15个部分的书。
但这个对功底一般,写程序还比较少的新手来说看起来比较不知底细。
所以推荐看一些相对比较简单的——只是指结构比较简单,比较容易把握理解,不是说它实现的功能简单。
这里我推荐看ST库,任何一个都可以,如果你本身就是用ST 单片机的,那么就针对你自己最熟悉那个系列的库去看就好了。
程序的结构和层次,是个大话题。
另外我推荐看一本书
代码大全,先看目录,你就知道你需要看其中几章了,这本书很长很长,论述的内容已经到了很高的高度。
但是本身每个单独的章节来看又相对独立,非常适合回答者类问题。
还有个问题
这种问题在哪里都一样
不是keil啥的。
程序本身是很纯粹的,和什么ide,编译器都无关,当然,这个要你慢慢体会了,写程序是一件 易学难精的事情,慢慢来吧。
一般玩单片机都是挂上各种模块,把一个模块的功能函数写好后做个相应的头文件,把接口函数都放在里面声明,main函数要调用的时候先包含该头文件。,这样方便移植和调试,出错了也容易找
还有记得做个公用的 C 文件,里面放些 延时、常用的宏定义呀,比如#define uint unsigned int什么的,这样可以很大程度的优化你的程序