首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[讨论]单片机C程序员的n层境界

[讨论]单片机C程序员的n层境界

第一层 只见树木,不见森林
目标代码的长度和执行效率,忘记了采用C语言的本意。
其实有时斤斤计较个别语句,意义并不大,52的FLASH是51的2倍,价格贵不了多少。速度不够,可以选用6T, 2T, 甚至1T的51,或者选用某些非51系列。速度一下就上去了。成本并不增加。
速度和代码长度主要取决于算法,比如象查找表,计算sin(x)等。

第二层 模块化和结构化思想
功能划分合理,相关的函数放在一个文件里,每个文件尽量不超过1千行。
合理设置和分配函数功能,每个函数尽量不超过一页。

第三层 可读性和可修改性
多少次读自己以前写的程序发现看不懂了,痛定思痛
详尽的注释
认真定义每个变量名和函数名
定义常量代替立即数
合理利用宏定义
有时候,为了可读性好甚至不惜牺牲代码长度和执行速度。

第四层 写出不容易出错的程序,出错也能比较容易的找到错误点
程序比较大,尤其是几个人分工合写的程序,一个很小的错误可能找上三天三夜,最后发现错误出在意想不到的地方。
尽量避免全局变量,必要的全局变量尽量放在一个struct里
合理定义和使用数据结构
C++封装的思想,用文件封装Private变量和函数,.c对应的.h文件里只放Public函数原型和Public变量的extern说明。
严格检查每个输入参数,尤其是人机界面。
防范意外,比如数据区出界(C编译不检查)。编程的重点由主线转移到处理意外。
增加调试代码。

第n层
正在探索中...

呵呵,看来我也到了第N层了。其实这些都是代码风格问题。写出高质量程序除代码风格外,还要注意使用最恰当的数据类型。如结构体,共同体,权举类型。设置恰当的函数返回值也是调试程序容错最好的方法。

;===========================; Cloud artech (R) Inc,; zhouwuqiang@yahoo.com.cn; zhou_wu_qiang@126.com; QQ: 342784105;===========================
看来我还得努力啊!加油!
返回列表