找回密码
 注册
关于网站域名变更的通知
查看: 178|回复: 2
打印 上一主题 下一主题

单片机C语言程序该这样写

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-10 10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
单片机程序也是程序,也要遵循写软件的一些基本原则,不是为了完成功能那么简单。我看过的所有的C语言单片机书籍基本都不注重模块化思想,完全是拿着C当汇编用,简直是在糟蹋C语言!
/ J, D" G2 @. ?7 s7 T, p- E3 n( X+ I! z8 [
如下问题,几乎所有的单片机书籍中都大量存在(更别说网上的和现实中的代码了,书上都写的那么差劲,学的人能好到哪里去):
; j8 a2 T- A8 Y1、变量到处定义,根本不管变量的生命周期是否合适(请回答:全局变量、局部变量、静态变量、volatile变量有什么区别联系?)
+ t- d2 b6 V. C2、变量名称极不规范,根本从名字上看不出来这个变量类型是什么,到底想干什么。' B/ C% m0 ?6 }+ |
3、函数定义几乎不用参数,全都是void
$ v: r3 L+ ^6 L* }+ d7 `6 U 4、语句写的一点都不直观,根本就是在用汇编。比如:想取一个字长的高字节和低字节,应该定义一个宏或是函数来做,如#define HIBYTE(w) ((BYTE)((DWORD)(w) >> 8)),以后直接用HIBYTE()多直观,难道非得用(BYTE)((DWORD)(w) >> 8)代表你的移位操作的水平很高吗?8 F9 U8 F2 O* t) O5 i1 p
5、最重要的一点,没有建立模块化的编程思想。一个程序往往要很多部分协同工作,需要把不同的功能分离出来单独创建一个.h和.c的文件,然后在头文件中把可以访问的函数暴露出来。
( A# L0 z: a1 Z; `; h6、不思考曾经做过的程序是否还有改进的余地,写程序如果只是为了写而写,一辈子也长进不了多少
; h! ?  @# X& c4 N5 A

该用户从未签到

2#
发表于 2022-8-10 11:08 | 只看该作者
看到了很不错

该用户从未签到

3#
发表于 2022-8-10 13:16 | 只看该作者
好东西,楼主辛苦了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-15 01:50 , Processed in 0.062500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表