打印

怎样让程序更清晰呢?

[复制链接]
2420|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
快乐小小鱼|  楼主 | 2012-9-19 22:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
457878| | 2012-9-19 22:30 | 只看该作者
从编码角度:0全局变量,最少外部函数,合理的数据结构...
从架构角度:最好是“建模 + 代码生成”

使用特权

评论回复
板凳
快乐小小鱼|  楼主 | 2012-9-19 23:54 | 只看该作者
中断传递参数必须是全局变量的,然后供各个函数使用,这样的全局变量怎样封装好呢?用结构体只是他们放在一起!

使用特权

评论回复
地板
快乐小小鱼|  楼主 | 2012-9-19 23:56 | 只看该作者
哎,知道这样的问题太笼统了,就好像想做饭,每个都自己的方法,但是做的好看(代码整洁),和好吃(代码效率高)就不尽相同,或许只能是自己慢慢做几遍饭,慢慢体会喽!

使用特权

评论回复
5
快乐小小鱼|  楼主 | 2012-9-19 23:59 | 只看该作者
自己不是天才,也只能在一遍遍重复中提高!:(

使用特权

评论回复
6
ayb_ice| | 2012-9-20 08:11 | 只看该作者
1# 快乐小小鱼

尽量打包

使用特权

评论回复
7
chenbb8| | 2012-9-20 08:24 | 只看该作者
将全局变量改成局部变量,通过参数调用传入
结构体封装会让变量的归类变得清晰起来。
更改函数间的逻辑关系,或者使用别的功能实现方法。
中断里如果有比较多的数据,就通过FIFO队列传输,比如ADC、KEY
状态机相对顺序执行会带来更多的RAM消耗,看你的取舍了。
还有就是将变量(状态量)和函数指针用结构体封装起来的,这个我都还没在项目中使用~
在不是很重要的地方就不用老是想着执行效率了,毕竟80%的代码占用20%的CPU时间。

使用特权

评论回复
8
dlyt_test001| | 2012-9-20 08:59 | 只看该作者
程序模块化很重要!
还有就是合理的数据结构!

使用特权

评论回复
9
快乐小小鱼|  楼主 | 2012-9-20 09:26 | 只看该作者
谢谢大家,有所领悟!

使用特权

评论回复
10
sinonion| | 2012-9-20 09:45 | 只看该作者
楼主,实际上清晰的思路很重要。
建议你先整理一下思路,画出流程,然后想想怎么分块,当你全局变量多的时候,是你思考进入了误区,比如:之前我用ADC,将采样的数据定义了一下全局的数组,后来思路理顺发现这个是没有任何必要的,楼主换个角度审视代码,那些传递的参数,绝大部分都是可以直接传的,一般几M的程序优化下来没有几个全局变量的!

使用特权

评论回复
11
原野之狼| | 2012-9-20 10:18 | 只看该作者
多看开源代码

使用特权

评论回复
12
快乐小小鱼|  楼主 | 2012-9-20 18:49 | 只看该作者
谢谢大家的回复,我会好好琢磨的!

使用特权

评论回复
13
liuyuqiong1| | 2012-9-20 20:18 | 只看该作者
我都是一个变量怎么用大概干吗的都是用英文描述,其次,在旁边注解下,例如
SystemClockTimer//系统时间

DriverClockTimer//驱动时间

System500ms_Timer//系统0.5s时间



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





12# 快乐小小鱼

使用特权

评论回复
14
渤海三叠浪| | 2012-9-20 21:17 | 只看该作者
11# 原野之狼
大侠说的对   

多看老外的代码  不看本土选手的代码

使用特权

评论回复
15
原野之狼| | 2012-9-20 21:51 | 只看该作者
11# 原野之狼
大侠说的对   

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

本土也有牛X的人噻   linux内核就有中国人贡献的内容  而且是重要内容

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

190

帖子

8

粉丝