怎样让程序更清晰呢?

[复制链接]
 楼主| 快乐小小鱼 发表于 2012-9-19 22:15 | 显示全部楼层 |阅读模式
程序里面变量多了,要交互的数据多了,就感觉程序没有思绪了,有什么好的方法,或小技巧让程序更清晰些呢?流程图?还是用状态机?
457878 发表于 2012-9-19 22:30 | 显示全部楼层
从编码角度:0全局变量,最少外部函数,合理的数据结构...
从架构角度:最好是“建模 + 代码生成”
 楼主| 快乐小小鱼 发表于 2012-9-19 23:54 | 显示全部楼层
中断传递参数必须是全局变量的,然后供各个函数使用,这样的全局变量怎样封装好呢?用结构体只是他们放在一起!
 楼主| 快乐小小鱼 发表于 2012-9-19 23:56 | 显示全部楼层
哎,知道这样的问题太笼统了,就好像想做饭,每个都自己的方法,但是做的好看(代码整洁),和好吃(代码效率高)就不尽相同,或许只能是自己慢慢做几遍饭,慢慢体会喽!
 楼主| 快乐小小鱼 发表于 2012-9-19 23:59 | 显示全部楼层
自己不是天才,也只能在一遍遍重复中提高!:(
ayb_ice 发表于 2012-9-20 08:11 | 显示全部楼层
1# 快乐小小鱼

尽量打包
chenbb8 发表于 2012-9-20 08:24 | 显示全部楼层
将全局变量改成局部变量,通过参数调用传入
结构体封装会让变量的归类变得清晰起来。
更改函数间的逻辑关系,或者使用别的功能实现方法。
中断里如果有比较多的数据,就通过FIFO队列传输,比如ADC、KEY
状态机相对顺序执行会带来更多的RAM消耗,看你的取舍了。
还有就是将变量(状态量)和函数指针用结构体封装起来的,这个我都还没在项目中使用~
在不是很重要的地方就不用老是想着执行效率了,毕竟80%的代码占用20%的CPU时间。
dlyt_test001 发表于 2012-9-20 08:59 | 显示全部楼层
程序模块化很重要!
还有就是合理的数据结构!
 楼主| 快乐小小鱼 发表于 2012-9-20 09:26 | 显示全部楼层
谢谢大家,有所领悟!
sinonion 发表于 2012-9-20 09:45 | 显示全部楼层
楼主,实际上清晰的思路很重要。
建议你先整理一下思路,画出流程,然后想想怎么分块,当你全局变量多的时候,是你思考进入了误区,比如:之前我用ADC,将采样的数据定义了一下全局的数组,后来思路理顺发现这个是没有任何必要的,楼主换个角度审视代码,那些传递的参数,绝大部分都是可以直接传的,一般几M的程序优化下来没有几个全局变量的!
原野之狼 发表于 2012-9-20 10:18 | 显示全部楼层
多看开源代码
 楼主| 快乐小小鱼 发表于 2012-9-20 18:49 | 显示全部楼层
谢谢大家的回复,我会好好琢磨的!
liuyuqiong1 发表于 2012-9-20 20:18 | 显示全部楼层
我都是一个变量怎么用大概干吗的都是用英文描述,其次,在旁边注解下,例如
SystemClockTimer//系统时间

DriverClockTimer//驱动时间

System500ms_Timer//系统0.5s时间



好的编程习惯非常重要,我刚工作时遇到很好的师父,就是这样慢慢锻炼过来的~~~
而且你下手前一定要知道自己想干嘛,会出现什么样的后果,不然就不要动~~想清楚再写也不迟~~





12# 快乐小小鱼
渤海三叠浪 发表于 2012-9-20 21:17 | 显示全部楼层
11# 原野之狼
大侠说的对   

多看老外的代码  不看本土选手的代码
原野之狼 发表于 2012-9-20 21:51 | 显示全部楼层
11# 原野之狼
大侠说的对   

多看老外的代码  不看本土选手的代码
渤海三叠浪 发表于 2012-9-20 21:17

本土也有牛X的人噻   linux内核就有中国人贡献的内容  而且是重要内容
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

194

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部