标签:
(1)程序采用缩进风格编码。
(2)较长的语句要分成多行书写,不允许把多个语句写成一行。
(3)if、for、do、while、case、switch、default等语句的执行语句,无论多少都要用{}括号,并占一行。
(1)文件头部应有注释,函数头部应有输入参数,输出参数,函数功能说明。
(2)注释的内容要清楚、明了、含义准确、无二义性。
(3)对代码的注释应不可放在代码下面。
(4)变量、常量、数据结构声明,如命令不是自注释的,必须加以注释。
(5)函数变量命令规范,易于理解。全局变量要有详尽的功能说明。
(1)在memcpy、memset,字符串操作时要预防内存越界,优先使用安全函数。
(2)注意检查数组下标,预防数组访问越界。
(3)不使用未初始化的指针。
(4)根据函数指针进行函数调用时,预先对函数指针的合法性进行检查。
(5)保证字符串中的‘\0‘终止符。
(6)内存申请失效时有相应的处理。
(7)进行强制类型转换时,保证不会越界访问。
(1)for、while循环的退出条件是否必然得到满足。
(2)for循环的代码不应对循环控制变量进行修改。
(3)for循环控制变量的类型是否合法,是否会因为运算溢出而导致循环无法退出。
(4)函数是否会一次执行大量的循环,导致系统实时性受到影响,是否有流控制。
(1)避免定义过大的局部变量,导致堆栈的溢出。
(2)避免使用递归算法,防止调用层次过多,导致堆栈的溢出。
(3)禁止将局部变量的指针返回给上层母函数使用。
(1)内存、消息、游标等资源的申请与释放操作是配对的。
(2)对于关键资源,是否有核查机制。
(1)针对多线程并发场景,对临界区有锁保护,避免重入。
(2)最小临界区仅在对数据进行访问及修改时加锁,避免死锁同时考虑自旋锁等提高效率。
(3)不用再锁区域内执行系统调用(如printf等),尽量减少不必要的锁嵌套。
(1)合理规划程序,要求结构及层次清晰,易于理解。
(2)函数及模块具有清晰的功能划分,功能简单,明细。
(3)较好对时空复杂度进行控制,是否合理使用“表驱动”的实现方式。
(1)是否有很便于定位的计算(如调试计数、消息计数等)。
(2)是否有很便于定位的日志,日志中重要信息是否打印完全,是否进行了必要的流控制。
(3)关键模块间消息内容是否加入到EMS跟踪中。
(1)在服从模块架构的前提下,冗余和重复代码是否做到最少。
标签:
原文地址:http://www.cnblogs.com/wuyouxiaocai/p/4684575.html