打印

关于单片机程序

[复制链接]
1396|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pkat|  楼主 | 2012-5-25 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写单片机程序也是程序,也要遵循写软件的一些基本原则,不是为了完成功能那么简单。我看过的所有的C语言单片机书籍基本都不注重模块化思想,完全是拿着C当汇编用,简直是在糟蹋C语言!

如下问题,几乎所有的单片机书籍中都大量存在(更别说网上的和现实中的代码了,书上都写的那么差劲,学的人能好到哪里去):
1、变量到处定义,根本不管变量的生命周期是否合适(请回答:全局变量、局部变量、静态变量、volatile变量有什么区别联系?)
2、变量名称极不规范,根本从名字上看不出来这个变量类型是什么,到底想干什么。
3、函数定义几乎不用参数,全都是void
4、语句写的一点都不直观,根本就是在用汇编。比如:想取一个字长的高字节和低字节,应该定义一个宏或是函数来做,如#define HIBYTE(w) ((BYTE)((DWORD)(w) >> 8)),以后直接用HIBYTE()多直观,难道非得用(BYTE)((DWORD)(w) >> 8)代表你的移位操作的水平很高吗?
5、最重要的一点,没有建立模块化的编程思想。一个程序往往要很多部分协同工作,需要把不同的功能分离出来单独创建一个.h和.c的文件,然后在头文件中把可以访问的函数暴露出来。
6、不思考曾经做过的程序是否还有改进的余地,写程序如果只是为了写而写,一辈子也长进不了多少

相关帖子

沙发
无冕之王| | 2012-5-25 15:41 | 只看该作者
代码没看,不过上边说的那几条还是有道理的

使用特权

评论回复
板凳
txcy| | 2012-5-25 15:44 | 只看该作者
LZ分析的的确是很在理

使用特权

评论回复
地板
xsgy123| | 2012-5-25 16:06 | 只看该作者
同意LZ的观点,很有思想

使用特权

评论回复
5
dfsa| | 2012-5-25 23:14 | 只看该作者
LZ很有思想,值得学习

使用特权

评论回复
6
dong_abc| | 2012-5-26 02:00 | 只看该作者
有点像从CSDN上某个帖子里摘取的内容。

使用特权

评论回复
7
O狂且O| | 2012-5-26 11:01 | 只看该作者
除了第 6 点需要改进. 其他还好. 哈哈......
教我们单片机的老师我早就想和他说这个问题, 真心烂啊. 不过他太小心眼又升了官, 不敢说.哈哈

使用特权

评论回复
8
yy251745080| | 2012-5-26 12:03 | 只看该作者
很像copy的。

使用特权

评论回复
9
suse-lj| | 2012-5-26 12:46 | 只看该作者
这 几个观点 我很同意。关键是做项目也要赶时间,谁 还要去考虑 那么多哦,把结构考虑好 就是 很好的了

使用特权

评论回复
10
svxuewen| | 2012-5-26 17:24 | 只看该作者
:lol

使用特权

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

本版积分规则

196

主题

2726

帖子

0

粉丝