Uint8_t var; /* 违反*/
Case 0:
A=b;
…
}
<函数>
Rule16.2(强制):函数不能直接或者间接的调用自己
注:safe-related 系统不能用递归,超出堆栈空间很危险
Rule16.8(强制):non-void类型函数的所有出口路径都应该有一个明确的return语句表达式
<指针和数组>
Rule17.1(强制):指针的数学运算只能用在指向数组的地址上
Rule17.3(强制):>,>=,<,<=不能用在指针类型除非指向同一个数组
Rule 17.5(建议):不要用2级以上指针
<结构和联合>
Rule18.4(强制)不要用Union
<预处理指令>
Rule19.1(建议):#include语句的前面只能有其他预处理指令和注释
Rule19.2(建议):#include指令中的头文件名称不能包含非标准的字符
Rule19.5(强制):宏不能在函数体内定义
Rule19.8(强制):类函数宏调用时不能没有它的参数
<标准库>
Rule20.1(强制):标准库中的保留标识符,宏和函数不能定义,重定义,和undefined
Rule20.4(强制):动态内存分配不能使用
注:不能使用:malloc,calloc,free,realloc
Rule20.9(强制):输入输出库(stdio.h)不能用在产生嵌入式系统中
Rule20.12(强制):时间处理函数
<运行时故障>
Rule 21.1(强制):通过使用一下手段确保把运行时故障最小化:
– 静态分析工具/技术
– 动态分析工具/技术
– 编写明确的代码避免运行时错误
文章来源于领测软件测试网 https://www.ltesting.net/