第一层 只见树木,不见森林
目标代码的长度和执行效率,忘记了采用C语言的本意。
其实有时斤斤计较个别语句,意义并不大,52的FLASH是51的2倍,价格贵不了多少。速度不够,可以选用6T, 2T, 甚至1T的51,或者选用某些非51系列。速度一下就上去了。成本并不增加。
速度和代码长度主要取决于算法,比如象查找表,计算sin(x)等。
第二层 模块化和结构化思想
功能划分合理,相关的函数放在一个文件里,每个文件尽量不超过1千行。
合理设置和分配函数功能,每个函数尽量不超过一页。
第三层 可读性和可修改性
多少次读自己以前写的程序发现看不懂了,痛定思痛
详尽的注释
认真定义每个变量名和函数名
定义常量代替立即数
合理利用宏定义
有时候,为了可读性好甚至不惜牺牲代码长度和执行速度。
第四层 写出不容易出错的程序,出错也能比较容易的找到错误点
程序比较大,尤其是几个人分工合写的程序,一个很小的错误可能找上三天三夜,最后发现错误出在意想不到的地方。
尽量避免全局变量,必要的全局变量尽量放在一个struct里
合理定义和使用数据结构
C++封装的思想,用文件封装Private变量和函数,.c对应的.h文件里只放Public函数原型和Public变量的extern说明。
严格检查每个输入参数,尤其是人机界面。
防范意外,比如数据区出界(C编译不检查)。编程的重点由主线转移到处理意外。
增加调试代码。
第n层
正在探索中...