23.LDRA - Testbed - C++编码规则列表1.0 下载本文

LDRA Testbed

C++ 编 码 规 则 列 表

www.visionmc.com

联系电话: 021-68534562(上海),010-62131690(北京)

028-86527582(成都),0755-3581788(深圳)

LDRA TESTBED.........................................................................................................................................................1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

过程名被重用 ..................................................................................................................................................1 标号名被重用 ..................................................................................................................................................1 文件中可执行格式化代码行超过***行 ...................................................................................................1 程序格式化代码行超过***行 .....................................................................................................................1 THEN语句为空 .............................................................................................................................................1 声明函数指针 ..................................................................................................................................................1 跳出程序体 ......................................................................................................................................................1 ELSE语句为空...............................................................................................................................................1 在非赋值表达式中出现了赋值操作符 .....................................................................................................1 未使用 ...........................................................................................................................................................1 循环体没有用大括号括起来 ...................................................................................................................1 THEN/ELSE中的语句没有用大括号括起来 .................................................................................1 使用GOTO语句 .......................................................................................................................................1 将过程定义为参数.....................................................................................................................................1 结构体定义中含有空域............................................................................................................................1 声明多重标号..............................................................................................................................................1 内嵌使用汇编代码.....................................................................................................................................2 函数参数超过***个...................................................................................................................................2 未被调用的函数使用函数作为参数......................................................................................................2 参数未使用类型声明 ................................................................................................................................2 未使用 ...........................................................................................................................................................2 使用一些模糊的语句(如=+,=-).........................................................................................................2 函数未被调用..............................................................................................................................................2 使用让工具不进行分析的注释/*LDRA_NOANALYSIS*/............................................................2 CASW语句为空 ........................................................................................................................................2 使用无限循环..............................................................................................................................................2

Testbed 术语表 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

返回类型为VOID的函数有RETURN语句 .....................................................................................2 继承类中复用基类.....................................................................................................................................2 使用-=或+=操作符.....................................................................................................................................2 使用++或者—操作符................................................................................................................................2 在循环中使用BREAK语句 ...................................................................................................................2 使用CONTINUE语句.............................................................................................................................2 使用三重表达式 .........................................................................................................................................3 对过程的声明中未对参数进行说明......................................................................................................3 圈复杂度大于*** .......................................................................................................................................3 过程不是单纯的顺序嵌套循环 ..............................................................................................................3 函数包含基本结点.....................................................................................................................................3 函数非结构化..............................................................................................................................................3 函数包含无限循环.....................................................................................................................................3 未使用的函数参数.....................................................................................................................................3 函数不是所有的路径上都有返回值......................................................................................................3 函数的实参是全局变量............................................................................................................................3 代码中有多余变量.....................................................................................................................................3 存在UR(变量未赋初值就引用)数据流异常.................................................................................3 使用函数递归调用.....................................................................................................................................3 存在DU(定义后未引用就退出作用域)数据流异常 ...................................................................3 存在DD(定义后未被引用就被再定义)数据流异常 ...................................................................3 被定义的参数可能存在CLEAR PATH..............................................................................................3 在函数内部使用全局变量 .......................................................................................................................3 参数与期望的作用不匹配 .......................................................................................................................4 被引用的变量可能存在CLEAR PATH..............................................................................................4 函数中全局变量使用与局部变量作用类似 ........................................................................................4 改变变量已被传递的值............................................................................................................................4 存在未被使用的过程参数 .......................................................................................................................4

上海创景计算机系统有限公司 3

55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 74 75 76 77 78 80 81 82 83 84 85

函数调用中存在相同的实参 ...................................................................................................................4 局部变量对结果没有意义 .......................................................................................................................4 函数有多入口..............................................................................................................................................4 函数有多出口..............................................................................................................................................4 静态过程没有被调用 ................................................................................................................................4 函数没有返回语句.....................................................................................................................................4 过程参数只有类型没有标识符 ..............................................................................................................4 使用静态类成员 .........................................................................................................................................4 使用不恰当的循环变量类型 ...................................................................................................................4 循环变量必须是局部的............................................................................................................................4 在函数参数表中使用省略号 ...................................................................................................................4 在结构体定义中使用位域 .......................................................................................................................4 使用SETJMP/LONGJMP .....................................................................................................................5 使用禁用的过程,函数,文件或名称 .................................................................................................5 未使用 ...........................................................................................................................................................5 数组越界.......................................................................................................................................................5 在SWITCH语句中没有DEFAULT 语句 .........................................................................................5 对有符号类型进行移位操作 ...................................................................................................................5 移位运算溢出..............................................................................................................................................5 禁止给无符号变量赋负值 .......................................................................................................................5 使用逗号操作符 .........................................................................................................................................5 长度操作符SIZEOF的副作用 ..............................................................................................................5 禁止对实数类型的变量做相等比较操作.............................................................................................5 使用不起作用的语句 ................................................................................................................................5 存在空语句 ..................................................................................................................................................5 IF语句中没有ELSE分支 ......................................................................................................................5 禁止SWITCH语句为空 .........................................................................................................................5 SWITCH语句中只包含DEFAULT ....................................................................................................5

Testbed 术语表 86 87 88 89 90 93 95 96 97 98 99 100 103 104 105 106 107 108 109 110 111 112 113 115 116 117 118 119

SWITCH语句中的CASE语句没有由BREAK语句来终止 .......................................................6 过程/函数的参数表为空...........................................................................................................................6 返回类型为VOID的的过程出现在表达式中 ...................................................................................6 VOID类型的变量作为参数进行传递 ..................................................................................................6 函数中只有RETURN语句没有返回值 ..............................................................................................6 使用#PRAGMA .........................................................................................................................................6 指针指向比分配更大的范围 ...................................................................................................................6 有符号的位域少于2个比特位的空间 .................................................................................................6 位域既不是有符号的整型也不是无符号的整型 ...............................................................................6 声明联合.......................................................................................................................................................6 在头文件前有可执行代码 .......................................................................................................................6 宏中使用了多个#和## ..............................................................................................................................6 禁止定义不像函数的宏............................................................................................................................6 指针的指针超过两级 ................................................................................................................................6 使用三字母词..............................................................................................................................................6 使用WCHAR_T类型..............................................................................................................................7 使用八进制数..............................................................................................................................................7 使用寄存器变量 .........................................................................................................................................7 枚举元素的初始化不完整 .......................................................................................................................7 重新定义保留字 .........................................................................................................................................7 用指针进行代数运算 ................................................................................................................................7 嵌入汇编程序时,嵌入的过程不是纯汇编程序 ...............................................................................7 字符类型没有标明是有符号还是无符号.............................................................................................7 对变量重命名..............................................................................................................................................7 在枚举中重复使用一个名字 ...................................................................................................................7 未使用 ...........................................................................................................................................................7 对指针变量使用强制类型转换 ..............................................................................................................7 对其它类型变量强制转换成指针变量 .................................................................................................7

上海创景计算机系统有限公司 5

122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 146 147 148 149 150

未使用 ...........................................................................................................................................................7 非调用的方式使用函数............................................................................................................................7 未使用 ...........................................................................................................................................................7 函数返回类型不一致 ................................................................................................................................8 函数和函数的原型的返回不一致 ..........................................................................................................8 函数和函数的原型的形参不一致 ..........................................................................................................8 结构体变量的初始化类型不一致 ..........................................................................................................8 结构体变量初始化的嵌套结构不一致 .................................................................................................8 标识符超出***字符...................................................................................................................................8 标识符名称重用 .........................................................................................................................................8 过程在被定义前调用 ................................................................................................................................8 变量在使用前没有被声明 .......................................................................................................................8 过程的声明在模块的内部 .......................................................................................................................8 函数存在全局变量的副作用 ...................................................................................................................8 函数存在形参的副作用............................................................................................................................8 函数没有定义原型.....................................................................................................................................8 变量的范围可以减少 ................................................................................................................................8 变量在一个文件中只能被定义一次......................................................................................................8 一个文件的变量应该被声明为静态的 .................................................................................................8 使用VOLATILE类型的定义................................................................................................................9 三重表达式中类型不匹配 .......................................................................................................................9 未使用 ...........................................................................................................................................................9 数组的下标不是整形 ................................................................................................................................9 标号不是包含在SWITCH语句中的 ...................................................................................................9 用TYPEDEF定义的类型名被重新定义 ............................................................................................9 存在潜在的无限循环 ................................................................................................................................9 部分地使用结构体变量............................................................................................................................9 未使用 ...........................................................................................................................................................9

Testbed 术语表 151 152 153 154 70 73 79 91 92 94 101 102 114 120 121 145 155 156 157 158 159 160 161 162 163 164 165 166

参数结构不一致 .........................................................................................................................................9 形参没有定义..............................................................................................................................................9 外部变量没有真实的声明 .......................................................................................................................9 源程序中使用非标准字符 .......................................................................................................................9 外部的在头文件中没有提及 ...................................................................................................................9 逻辑上关联的表达式需要括号 ..............................................................................................................9 一个表达式有多个功能............................................................................................................................9 在模块中使用#DEFINE...........................................................................................................................9 使用#UNDEF ............................................................................................................................................10 使用指针做逻辑比较 ..............................................................................................................................10 宏表示的带参数的函数,宏没有附上括号 ......................................................................................10 宏的参数没有括号...................................................................................................................................10 使用基本类型的声明 ..............................................................................................................................10 使用混合方式运算...................................................................................................................................10 多余的类型转换 .......................................................................................................................................10 使用单行注释// .........................................................................................................................................10 表达式不是逻辑表达式..........................................................................................................................10 使用不正确的终止字符串 .....................................................................................................................10 建议与0进行逻辑比较 ..........................................................................................................................10 对常量值进行逻辑非的运算 .................................................................................................................10 主函数必须为INT(VOID)或者INT(INT,CHAR*[]) ....................................................................10 存在嵌套注释............................................................................................................................................10 对有符号类型使用位操作 .....................................................................................................................10 SWITCH语句的表达式是逻辑表达式..............................................................................................11 使用ABORT,EXIT等函数 ..................................................................................................................11 枚举类型的越限使用 ..............................................................................................................................11 使用前缀“++”、“――” ............................................................................................................11 在宏中使用“##”、“#” ............................................................................................................................11

上海创景计算机系统有限公司 7

167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194

在同一个文件中#IF没有#ENDIF.......................................................................................................11 数组没有边界限定...................................................................................................................................11 参数与全局变量同名 ..............................................................................................................................11 参数与类型或标识符同名 .....................................................................................................................11 禁止使用头文件的内容..........................................................................................................................11 在整个系统中声明的类型不一致 ........................................................................................................11 不同的文件中过程名被重用 .................................................................................................................11 在函数内部变量名被重用 .....................................................................................................................11 在逻辑表达式中使用赋值操作符 ........................................................................................................11 赋值操作符与“&&”或“||”连用 ...................................................................................................11 在复杂的表达式中使用VOLATILE类型的变量 ..........................................................................11 参数表定义是KR形式 ..........................................................................................................................12 位操作符带有布尔型的操作数 ............................................................................................................12 表达式有副作用 .......................................................................................................................................12 位操作符作用于布尔值..........................................................................................................................12 结构体中使用无名位域..........................................................................................................................12 由于设计原因导致某些代码不可执行 ...............................................................................................12 存在不可控制的循环条件 .....................................................................................................................12 结构声明不完整 .......................................................................................................................................12 变量声明不明确 .......................................................................................................................................12 形参的声明形式上不一致 .....................................................................................................................12 函数的原形与定义的形参名称不一致 ...............................................................................................12 函数调用有执行顺序副作用 .................................................................................................................12 函数有静态局部变量的副影响 ............................................................................................................12 表达式中使用{}...................................................................................................................................12 禁止使用浮点运算...................................................................................................................................12 无效的 #IF表达式 ...................................................................................................................................12 #DEFINE有空的参数列表 ...................................................................................................................12

Testbed 术语表 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222

程序预处理后存在欺骗性字符 ............................................................................................................13 过程/函数没有返回类型.........................................................................................................................13 过程的指针参数被重新分配地址 ........................................................................................................13 LCSAJ密度超过***...............................................................................................................................13 函数类型使用VOLATILE或CONST .............................................................................................13 在宏定义中使用全局变量 .....................................................................................................................13 宏定义中有一条注释 ..............................................................................................................................13 在预处理指示中有一条注释 .................................................................................................................13 在循环语句中有多个控制变量 ............................................................................................................13 存在头文件包含头文件..........................................................................................................................13 在预处理指示之间存在注释 .................................................................................................................13 在宏的内部使用关键字“DEFINED” ...............................................................................................13 更改字符串内的字符文字 .....................................................................................................................13 表达式中有超过***个子条件...............................................................................................................13 使用指针与0或NULL比较 ................................................................................................................13 宏扩展中有循环 .......................................................................................................................................13 FOR语句中存在声明 .............................................................................................................................13 类声明中包含方法定义..........................................................................................................................14 函数名以大写字母开始..........................................................................................................................14 使用VOID*指针......................................................................................................................................14 类声明嵌套 ................................................................................................................................................14 函数体中包含类声明 ..............................................................................................................................14 类定义中包含类变量声明 .....................................................................................................................14 函数在成员变量处被调用,但函数没有CONST关键字 ............................................................14 类成员有前向引用...................................................................................................................................14 被调用的过程既没有原型也没有定义 ...............................................................................................14 变量有内部和外部的联接 .....................................................................................................................14 变量声名很烦琐 .......................................................................................................................................14

上海创景计算机系统有限公司 9

223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250

循环有多入口............................................................................................................................................14 循环有多出口............................................................................................................................................14 过程调用没有原型声明..........................................................................................................................14 过程调用没有原型声明..........................................................................................................................14 类成员用小写字母开头..........................................................................................................................14 函数名以小写字符开始..........................................................................................................................14 代码中没有标准的出口顺序 .................................................................................................................15 在函数返回中使用局部指针返回 ........................................................................................................15 在新一行标识符没有被声明 .................................................................................................................15 声明语句没有另起一行写 .....................................................................................................................15 外部变量应该在头文件的开始声明....................................................................................................15 在声明变量时,*和名称之间没有空格 .............................................................................................15 在IF,WHILE,FOR表达式之间没有空行 ........................................................................................15 FOR表达式的”;”之后没有间隔..........................................................................................................15 FOR表达式的”;”之后没有换行..........................................................................................................15 “->”或“[ ]”操作符的周围没有空格 ..................................................................................................15 一元操作符和操作数之间有空格 ........................................................................................................15 二元操作符前或后缺少空格 .................................................................................................................15 代码中使用TAB键来缩进代码 ..........................................................................................................15 “{”或“}”没有上下对齐 ............................................................................................................15 一行的输入超过极限,在VAL.DAT文件中可设置门限............................................................15 “{”“}”之间的内容没有缩进两段间隔..................................................................................15 函数名和圆括号之间有空格 .................................................................................................................15 定义函数时,函数名和STATIC不在同一行 .................................................................................16 函数定义中INLINE行应当放在单独一行 ......................................................................................16 在成员定义中CONST行应当放在单独一行 ..................................................................................16 函数的返回类型需要另起一行 ............................................................................................................16 类开始没有访问标识 ..............................................................................................................................16

Testbed 术语表 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278

访问标识应当有有效的顺序 .................................................................................................................16 结构中包含私有语句 ..............................................................................................................................16 使用匿名的名称空间 ..............................................................................................................................16 用宏定义数字常量...................................................................................................................................16 在表达式中使用替代数字的文字 ........................................................................................................16 类成员不是私有的...................................................................................................................................16 对常量强制类型转换 ..............................................................................................................................16 保留字CONTIUE和GOTO没有被定义成垃圾...........................................................................16 不要使用多重继承...................................................................................................................................16 文件间递归 ................................................................................................................................................16 在系统中任何地方程序都没有被调用 ...............................................................................................16 类初始化器顺序错乱 ..............................................................................................................................16 存在被0除 ................................................................................................................................................17 其它文件没有调用这个文件的程序....................................................................................................17 在C++中使用老式的/*注释符 .............................................................................................................17 私有成员名称末尾需要下划线 ............................................................................................................17 预处理命令没有缩进 ..............................................................................................................................17 宏名称没有大写 .......................................................................................................................................17 重载了&&, ||和逗号 ................................................................................................................................17 类中使用了友元函数 ..............................................................................................................................17 使用了友元类............................................................................................................................................17 成员没有声明为虚拟 ..............................................................................................................................17 构造函数或类被成员变量调用 ............................................................................................................17 指针名称没有必须的后缀 .....................................................................................................................17 变量名称只有大小写不同 .....................................................................................................................17 函数名和库函数名相同..........................................................................................................................17 使用以下划线开始的变量名 .................................................................................................................17 全局类型没有前缀...................................................................................................................................17

上海创景计算机系统有限公司 11

279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306

类/结构/联合/枚举的名称以小写字符开始 .......................................................................................17 变量名的第一个字符是大写的 ............................................................................................................18 全局函数没有前缀...................................................................................................................................18 枚举类型变量的第一个字符是大写的 ...............................................................................................18 文件的扩展名不是CPP或HPP..........................................................................................................18 文件名包含大写字母 ..............................................................................................................................18 位域不是八进制,十六进制或没有后缀U ......................................................................................18 位操作数不是八进制,十六进制或没有后缀U .............................................................................18 在宏定义中,“(”或“{”不匹配 ...............................................................................................18 在宏定义中,“)”或“}”不匹配 ...............................................................................................18 没有类的拷贝构造函数的定义 ............................................................................................................18 没有类的赋值操作的定义 .....................................................................................................................18 没有类的析构函数的定义 .....................................................................................................................18 没有类拷贝构造函数的指针定义 ........................................................................................................18 没有类的赋值操作的指针定义 ............................................................................................................18 没有类的析构函数的指针定义 ............................................................................................................18 类中没有使用新的赋值操作 .................................................................................................................18 赋值操作的参数不是常量 .....................................................................................................................18 模版的数目超过***.................................................................................................................................19 类中没有使用拷贝构造函数 .................................................................................................................19 使用动态造型............................................................................................................................................19 使用REINTERRUPT造型 ..................................................................................................................19 使用CONST造型 ...................................................................................................................................19 带有#DEFINE的被包含文件没有被保护 ........................................................................................19 重载NEW和DELETE .........................................................................................................................19 在嵌套模块中有CASE语句 ................................................................................................................19 类缺少访问标识 .......................................................................................................................................19 宏定义调用自己 .......................................................................................................................................19

Testbed 术语表 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334

在预处理程序中被0除 ..........................................................................................................................19 对布尔类型的操作不当..........................................................................................................................19 未使用 .........................................................................................................................................................19 被包含文件内包含文件..........................................................................................................................19 使用了STDIO.H而不是IOSTREAM.H .........................................................................................19 文字数字使用小写后缀..........................................................................................................................19 忽略了相反类型操作符..........................................................................................................................19 运算没有返回THIS指针的引用.........................................................................................................20 使用#IF,#IFDEF,#ELSE,#ELSEIF ....................................................................................................20 程序原代码超过***行 ............................................................................................................................20 #INCLUDE后的文件名没有加“< >” ..............................................................................................20 头文件中包含多个类 ..............................................................................................................................20 语句没有另起一行开始写 .....................................................................................................................20 类中没有缺省的构造函数声明 ............................................................................................................20 未使用 .........................................................................................................................................................20 非虚函数重定义 .......................................................................................................................................20 禁用命名空间............................................................................................................................................20 禁用类模版 ................................................................................................................................................20 函数模版禁用............................................................................................................................................20 类声明中有构造函数定义 .....................................................................................................................20 用小写字符表示十六进制数 .................................................................................................................20 FOR循环语句使用空初始化表达式 ..................................................................................................20 FOR循环语句使用空增量表达式.......................................................................................................20 FOR循环语句的初始化表达式很复杂..............................................................................................20 FOR循环语句的增量表达式很复杂 ..................................................................................................21 使用#IFNDEF(参考删除)....................................................................................................................21 使用#DEFINE ........................................................................................................................................21 变量名称的长小于*** ............................................................................................................................21

上海创景计算机系统有限公司 13

335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362

结构,联合或枚举缺少标识符 ............................................................................................................21 CASE不是SWITCH语句的枚举部分 .............................................................................................21 SWITCH语句的选择不是枚举 ...........................................................................................................21 SWITCH语句缺少附加的CASE语句 .............................................................................................21 使用TRY关键字.....................................................................................................................................21 使用CATCH关键字 ..............................................................................................................................21 使用THROW关键字 ............................................................................................................................21 使用易变关键字 .......................................................................................................................................21 使用多个直接继承...................................................................................................................................21 强制转换之前有强制转换 .....................................................................................................................21 类不需要定义在文件中..........................................................................................................................21 在头文件中定义函数 ..............................................................................................................................21 在头文件中定义变量 ..............................................................................................................................21 头文件的扩展名不是.H..........................................................................................................................22 头文件名不包含类名 ..............................................................................................................................22 文件名不包含被定义的类名 .................................................................................................................22 函数的第一个参数与函数不同行 ........................................................................................................22 #INCLUDE和文件名之间没有空格 ..................................................................................................22 使用非标准的构造...................................................................................................................................22 被嵌套的命名空间超过*** ...................................................................................................................22 使用连字.....................................................................................................................................................22 函数/过程在块范围内中声明................................................................................................................22 内联函数多于***行.................................................................................................................................22 使用非CONST指针指向函数 .............................................................................................................22 函数指针的声明没有使用TYPEDEF................................................................................................22 指针在使用之前没有检查是不是为NULL ......................................................................................22 存在不可达代码 .......................................................................................................................................22 文件扩展名不是.CPP .............................................................................................................................22

Testbed 术语表 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390

“}”和“{”不在同一条垂直线上 ...............................................................................................22 注释中可能包含代码 ..............................................................................................................................22 虚类成员函数必须要虚析构函数 ........................................................................................................23 成员函数应该定义成常量类型 ............................................................................................................23 使用无符号数进行运算..........................................................................................................................23 对标准...未使用的检查标注 ..................................................................................................................23 未使用的检查标注...................................................................................................................................23 使用了C类型转换 ..................................................................................................................................23 使用#LINE,#ERROR预处理指示......................................................................................................23 未使用的检查标注...................................................................................................................................23 未使用 .........................................................................................................................................................23 “*”或“&”没有和类型连在一起 ...........................................................................................................23 发现有数组参数 .......................................................................................................................................23 非局部定义不在命名空间里 .................................................................................................................23 函数名称不全是小写 ..............................................................................................................................23 变量名称不全是小写 ..............................................................................................................................23 企图写未打开的文件 ..............................................................................................................................23 文件指针在退出时没有关闭 .................................................................................................................23 SWITCH语句只有一条CASE和DEFAULT................................................................................23 在“.”操作符的前后是空白 ....................................................................................................................24 位域不是无符号整型 ..............................................................................................................................24 TYPEDEF定义的名称以小写字母开始 ...........................................................................................24 名称的第一个字母之后不是小写的....................................................................................................24 构造函数没有完全初始化 .....................................................................................................................24 未使用 .........................................................................................................................................................24 未使用 .........................................................................................................................................................24 被包含的文件有路径 ..............................................................................................................................24 DEFAULT不是SWITCH语句最后的CASE................................................................................24

上海创景计算机系统有限公司 15

391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418

SWITCH有多个DEFAULT ...............................................................................................................24 宏调用时,参数个数不正确 .................................................................................................................24 标记符使用不一致...................................................................................................................................24 声明变量缺少变量类型..........................................................................................................................24 结构成员名称重用...................................................................................................................................24 在位域结构中存在非位域成员 ............................................................................................................24 无格式字符操作不当 ..............................................................................................................................24 存在潜在的类型转换 ..............................................................................................................................24 字面值需要一个U后缀 .........................................................................................................................25 强制扩展复杂的整型表达式 .................................................................................................................25 强制扩展复杂的浮点型表达式 ............................................................................................................25 当”~”或“<<”操作符应用于小类型时,没有强制转换 .............................................................25 被定义的操作符包含非法项 .................................................................................................................25 #IF扩展包含DEFINE操作符.............................................................................................................25 在#IF中使用未定义的宏变量..............................................................................................................25 #INCLUDE之前有非预处理指示.......................................................................................................25 #INCLUDE 带有非法项 ........................................................................................................................25 像使用宏一样使用函数..........................................................................................................................25 预处理程序构造作为宏参数 .................................................................................................................25 在预处理程序之后有额外的字符 ........................................................................................................25 在同一个文件中#ELSE没有#IF .........................................................................................................25 强制转换VOLATILE 型的值 .............................................................................................................25 位操作带有浮点操作数..........................................................................................................................25 位域既不是整型也不是枚举类型 ........................................................................................................25 宏参数列表有主要的间隔 .....................................................................................................................25 使用NULL宏...........................................................................................................................................26 枚举变量不全是小写的..........................................................................................................................26 常量不全是小写的...................................................................................................................................26

Testbed 术语表 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446

类型声明带有变量定义..........................................................................................................................26 不在头文件中声明类型..........................................................................................................................26 内存没有被释放 .......................................................................................................................................26 从释放内存读数据...................................................................................................................................26 内联函数多于***条语句........................................................................................................................26 外部声明不在头文件中..........................................................................................................................26 变量名不超过***个字符........................................................................................................................26 声明指针的指针 .......................................................................................................................................26 基类有虚基类和非虚基类 .....................................................................................................................26 类的成员名重用 .......................................................................................................................................26 使用缺省参数............................................................................................................................................26 矛盾的类型 ................................................................................................................................................26 表达式需要括号 .......................................................................................................................................26 命名空间里存在MAIN函数 ................................................................................................................26 成员变量不是用“=”赋值 ...................................................................................................................27 未使用 .........................................................................................................................................................27 继承类对缺省的参数重定义 .................................................................................................................27 十六进制数用大写字符..........................................................................................................................27 字符串的延续使用“” ..............................................................................................................................27 宏的延续使用“” .......................................................................................................................................27 PRAGMA的延续使用“”.......................................................................................................................27 变量名称的长度大于***........................................................................................................................27 IF嵌套深度大于***................................................................................................................................27 参数列表中的逗号之后没有空格间隔 ...............................................................................................27 “*”/“&”没有和变量名称连在一起 ...................................................................................................27 使用整数除法............................................................................................................................................27 变量名称与类型冲突 ..............................................................................................................................27 使用八进制的出口顺序..........................................................................................................................27

上海创景计算机系统有限公司 17

447 448 449 450 451 452 453 454 455 456 457

字符串中使用空格字符..........................................................................................................................27 在结构/联合/枚举中标识符和类型不一致 ........................................................................................27 宏代码超过***行 .....................................................................................................................................27 枚举元素没有在新的一行书写 ............................................................................................................28 枚举,结构和联合的变量没有被TYPEDEF ..................................................................................28 没有返回值的声明缺少VOID .............................................................................................................28 标识符名称和宏的名称一致 .................................................................................................................28 在31个字符内,标识符和宏的名称一致.........................................................................................28 MISRA的SWITCH语句有语法违反...............................................................................................28 所有的内部联接调用不可达 .................................................................................................................28 程序之后少于***行空白行 ...................................................................................................................28

Testbed 编码规则列表 1

1 2

过程名被重用

1 S Procedure name reused. 801 MISRA-C2 5.2 MISRA/DERA 21

标号名被重用

2 S Label name reused. MISRA/DERA 12

3 4

5 6 7 8 9

文件中可执行格式化代码行超过***行 程序格式化代码行超过***行 then语句为空

3 S More than *** executable reformatted lines in file. EADS-C 4

4 S Procedure exceeds *** reformatted lines.

5 S Empty then clause. DERA 141

声明函数指针

6 S Procedure pointer declared.

跳出程序体

7 S Jump out of procedure.

else语句为空

8 S Empty else clause.

在非赋值表达式中出现了赋值操作符

9 S Assignment operation in expression. MISRA/DERA 33, 35, 40, 46 EADS-C 166,167

10 11

未使用

循环体没有用大括号括起来

10 S Not used

11 S No brackets to loop body (added by Testbed). MISRA/DERA 59 MISRA-C2 14.8 EADS-C 145,165,166,167

12 then/else中的语句没有用大括号括起来

12 S No brackets to then/else (added by Testbed). MISRA/DERA 59 MISRA-C2 14.9 EADS-C 145 13 使用goto语句

13 S goto detected. MISRA/DERA 56 MISRA-C2 14.4 EADS-C 119

14 15

将过程定义为参数 结构体定义中含有空域

14 S Procedural parameter declared. DERA 149

15 S Anonymous field to structure. MISRA/DERA 108, 113 16 声明多重标号

16 S Multiple labels declared.

上海创景计算机系统有限公司 1 Testbed 术语表

17 内嵌使用汇编代码

17 S Code insert found. MISRA/DERA 3 18 函数参数超过***个

18 S More than *** parameters in procedure.

19 未被调用的函数使用函数作为参数

19 S Procedural para used in an uncalled procedure. 20 参数未使用类型声明

20 S Parameter not declared explicitly. 21 未使用 21 S Not in use.

22 23 24

使用一些模糊的语句(如=+,=-) 函数未被调用

使用让工具不进行分析的注释/*LDRA_NOANALYSIS*/

22 S Use of obsolete language feature ( use = - ) MISRA/DERA 1 DERA 137

23 S Procedure is not called in text analysed.

24 S Use of Noanalysis annotation. 25 casw语句为空

25 S Null case(s) in switch statement.

26 使用无限循环

26 S Infinite loop used. DERA 142 EADS-C 133 27 返回类型为VOID的函数有return语句

27 S VOID procedure with return statement. MISRA/DERA 84 EADS-C 112 28 继承类中复用基类

28 S Duplicated Base Classes in a Derived class. 29 使用-=或+=操作符

29 S Use of += or -= operators found.

30 使用++或者—操作符

30 S Deprecated usage of ++ or -- operators found. MISRA/DERA 33, 46 MISRA-C2 12.13

31 在循环中使用break语句

31 S Use of break statement in loop. MISRA/DERA 58 MISRA-C2 14.6 EADS-C 120

32 使用continue语句

32 S Use of continue statement. MISRA/DERA 57 MISRA-C2 14.5 EADS-C 119

上海创景计算机系统有限公司 2 Testbed 术语表 33 34 35 36

使用三重表达式

对过程的声明中未对参数进行说明 圈复杂度大于***

过程不是单纯的顺序嵌套循环 函数包含基本结点 函数非结构化 函数包含无限循环 未使用的函数参数

函数不是所有的路径上都有返回值 函数的实参是全局变量 代码中有多余变量

存在UR(变量未赋初值就引用)数据流异常 使用函数递归调用

33 S Use of ternary expression found. EADS-C 134

34 S No parameters declared in proc specification.

1 C Cyclomatic complexity greater than ***.

2 C Procedure is not reducible in terms of intervals.

37 38 39 40 41 42 43 44 45

3 C Procedure contains essential knots.

4 C Procedure is not structured.

5 C Procedure contains infinite loop. DERA 142

1 D Unused procedure parameter.

2 D Function does not return a value on all paths. MISRA/DERA 75 MISRA-C2 16.8

3 D Actual parameter is also global to procedure. DERA 148

4 D Variables declared but not used in code analysed. DERA 143

5 D UR data flow anomalies found. MISRA/DERA 30 MISRA-C2 9.1

6 D Recursion in procedure calls found. MISRA/DERA 70 MISRA-C2 16.2 EADS-C 117

46 47 48 49

存在DU(定义后未引用就退出作用域)数据流异常 存在DD(定义后未被引用就被再定义)数据流异常 被定义的参数可能存在Clear Path 在函数内部使用全局变量

7 D DU data flow anomalies found.

8 D DD data flow anomalies found.

9 D Defined parameter has possible clear path. DERA 151

10 D Globals used inside procedure.

上海创景计算机系统有限公司 3 Testbed 术语表 50 51 52 53 54 55 56 57 58

参数与期望的作用不匹配

被引用的变量可能存在Clear Path 函数中全局变量使用与局部变量作用类似 改变变量已被传递的值 存在未被使用的过程参数 函数调用中存在相同的实参 局部变量对结果没有意义 函数有多入口 函数有多出口

11 D Parameters do not match expected actions.

12 D Referenced parameter has possible clear path.

13 D Global used in procedure matches local parameter.

14 D Attempt to change parameter passed by value. DERA 152

15 D Unused procedural parameter.

16 D Identical actual parameters in call DERA 153

1 I Local variables contribute nothing to results.

6 C Procedure has more than one entry point.

7 C Procedure has more than one exit point. MISRA/DERA 82 MISRA-C2 14.7 EADS-C 111

59 60 61 62 63 64 65 66

静态过程没有被调用 函数没有返回语句

过程参数只有类型没有标识符 使用静态类成员

使用不恰当的循环变量类型 循环变量必须是局部的 在函数参数表中使用省略号 在结构体定义中使用位域

35 S Static Procedure is not called in text analysed.

36 S Function has no return statement. MISRA/DERA 75 MISRA-C2 16.8

37 S Procedure Parameter has a type but no identifier. MISRA/DERA 73 MISRA-C2 16.3

38 S Use of Static class member.

39 S Unsuitable type for loop variable. MISRA/DERA 65 MISRA-C2 13.4

40 S Loop index is not declared locally.

41 S Ellipsis used in procedure parameter list. MISRA/DERA 69 MISRA-C2 16.1

42 S Use of bit field in structure declaration. MISRA/DERA 111 MISRA-C2 3.5

上海创景计算机系统有限公司 4 Testbed 术语表 67 68

使用setjmp/longjmp

使用禁用的过程,函数,文件或名称

43 S Use of setjmp/longjmp. MISRA/DERA 122 AV 20 MISRA-C2 20.7

44 S Use of banned function or variable. MISRA/DERA 118 AV 17,18,19,21,22,23,24,25 MISRA

69 71 72

未使用 数组越界

在switch语句中没有default 语句

45 S Not in use.

47 S Array Bound exceeded. MISRA/DERA 4

48 S No default case in switch statement. MISRA/DERA 62 AV 194,196 MISRA-C2 15.3 EADS-C 1

74 75 76

对有符号类型进行移位操作 移位运算溢出

禁止给无符号变量赋负值

50 S Use of shift operator on signed type. MISRA/DERA 37

51 S Shifting value too far. MISRA/DERA 38 AV 164 MISRA-C2 12.8

52 S Unsigned expression negated. MISRA/DERA 39 AV 165 MISRA-C2 12.9

77 使用逗号操作符

53 S Use of comma operator. MISRA/DERA 42 AV 168 MISRA-C2 12.10

78 长度操作符sizeof的副作用

54 S Sizeof operator with side effects. MISRA/DERA 40 AV 166 MISRA-C2 12.3

80 禁止对实数类型的变量做相等比较操作

56 S Equality comparison of floating point. MISRA/DERA 50 AV 202 MISRA-C2 13.3 EADS-C 102 81 使用不起作用的语句

57 S Statement with no side effect. MISRA/DERA 53 AV 187 MISRA-C2 14.2 82 存在空语句

58 S Null statement found. MISRA/DERA 54 83 if语句中没有else分支

59 S Else alternative missing in if. MISRA/DERA 60 AV 192 MISRA-C2 14.10 84 禁止switch语句为空

60 S Empty switch statement. MISRA/DERA 64 AV 64 85 switch语句中只包含default

61 S Switch contains default only. MISRA/DERA 64 AV 64 MISRA-C2 15.5

上海创景计算机系统有限公司 5 Testbed 术语表 86 switch语句中的case语句没有由break语句来终止

62 S Switch Case not terminated with break. MISRA/DERA 61 AV 193 MISRA-C2 15.2 15.5 EADS-C 87 过程/函数的参数表为空

63 S Empty parameter list to procedure/function. MISRA/DERA 76 MISRA-C2 16.5 EADS-C 109 88 返回类型为void的的过程出现在表达式中

64 S Void procedure used in expression. MISRA/DERA 79 89 void类型的变量作为参数进行传递

65 S Void variable passed as parameter. MISRA/DERA 80 90 函数中只有return语句没有返回值

66 S Function with empty return expression. MISRA/DERA 83 MISRA-C2 16.8 93 使用#pragma

69 S #pragma used. MISRA/DERA 99 AV 26 MISRA-C2 3.4 95 指针指向比分配更大的范围

71 S Pointer assignment to wider scope. MISRA/DERA 106 AV 111,173 MISRA-C2 17.6 96 有符号的位域少于2个比特位的空间

72 S Signed bit field less than 2 bits wide. MISRA/DERA 111, 112 MISRA-C2 6.5 97 位域既不是有符号的整型也不是无符号的整型

73 S Bit field not signed or unsigned int. MISRA/DERA 111 MISRA-C2 6.4 98 声明联合

74 S Union declared. MISRA/DERA 109, 110 DERA 164 AV 153 MISRA-C2 18 99 在头文件前有可执行代码

75 S Executable code before an included file. MISRA/DERA 87 MISRA-C2 19.1

100 宏中使用了多个#和##

76 S More than one of # or ## in a macro. MISRA/DERA 98 MISRA-C2 19.12

103 禁止定义不像函数的宏

79 S Macro contains unacceptable items MISRA/DERA 90 DERA 157 MISRA-C2 19.4 EADS-C++ 4

104 指针的指针超过两级

80 S Pointer indirection exceeds 2 levels. MISRA/DERA 102 AV 169,170 MISRA-C2 17.5

105 使用三字母词

81 S Use of trigraphs. MISRA/DERA 7 AV 11 MISRA-C2 4.2 EADS-C++ 52

上海创景计算机系统有限公司 6 Testbed 术语表 106 使用wchar_t类型

82 S Use of wide string literal. MISRA/DERA 8 AV 13

107 使用八进制数

83 S Octal number found. MISRA/DERA 19 AV 149 MISRA-C2 7.1

108 使用寄存器变量

84 S Register variable declared. MISRA/DERA 28 AV 140

109 枚举元素的初始化不完整

85 S Incomplete initialisation of enumerator. MISRA/DERA 32 AV 145 MISRA-C2 9.3 EADS-C 81 EAD

110 重新定义保留字

86 S Attempt to define reserved word. MISRA/DERA 114 MISRA-C2 20.1

111 用指针进行代数运算

87 S Use of pointer arithmetic. MISRA/DERA 101 AV 215 MISRA-C2 17.1 17.4

112 嵌入汇编程序时,嵌入的过程不是纯汇编程序

88 S Procedure is not pure assembler. MISRA/DERA 3 MISRA-C2 2.1

113 字符类型没有标明是有符号还是无符号

89 S char type not signed or unsigned. MISRA/DERA 14

115 对变量重命名

91 S Name redeclared in another namespace (MR). MISRA/DERA 12 801 MISRA-C2 5.6 EADS-C 53

116 在枚举中重复使用一个名字

92 S Duplicate use of a name in an enumeration. MISRA/DERA 12 801 MISRA-C2 5.2

117 未使用

93 S Not in use MISRA/DERA 18, 48 MISRA-C2 6.1

118 对指针变量使用强制类型转换

94 S Casting operation on a pointer. MISRA/DERA 45 AV 182 MISRA-C2 11.2 11.3 11.4 EA

119 对其它类型变量强制转换成指针变量

95 S Casting operation to a pointer. MISRA/DERA 45 AV 182 MISRA-C2 11.4 EADS-C++ 28

122 未使用

98 S Not used. MISRA-C2 16.6

123 非调用的方式使用函数

99 S Function use is not a call. MISRA/DERA 85

124 未使用

100 S Not used. MISRA-C2 19.2

上海创景计算机系统有限公司 7 Testbed 术语表 125 函数返回类型不一致

101 S Function return type inconsistent. MISRA/DERA 83iii 801

126 函数和函数的原型的返回不一致

102 S Function and prototype return inconsistent (MR). MISRA/DERA 72 MISRA-C2 8.3

127 函数和函数的原型的形参不一致

103 S Function and prototype param inconsistent (MR). MISRA/DERA 72, 26 MISRA-C2 8.4

128 结构体变量的初始化类型不一致

104 S Struct field initialisation incorrect. MISRA/DERA 31

129 结构体变量初始化的嵌套结构不一致

105 S Struct field initialisation brace fault. MISRA/DERA 29 AV 144 MISRA-C2 9.2

130 标识符超出***字符

17 D Identifier not unique within *** characters. MISRA/DERA 11 AV 46 MISRA-C2 1.4 5.1

131 标识符名称重用

18 D Identifier name reused MISRA/DERA 12 AV 135 MISRA-C2 5.5

132 过程在被定义前调用

19 D Procedure called before being defined. MISRA/DERA 20, 71

133 变量在使用前没有被声明

20 D No declaration for variable found before use. MISRA/DERA 20

134 过程的声明在模块的内部

21 D Procedure declared in inner block MISRA/DERA 68

135 函数存在全局变量的副作用

22 D Function has global variable side effects MISRA/DERA 33, 46 MISRA-C2 12.4

136 函数存在形参的副作用

23 D Function has parameter side effects MISRA/DERA 33, 46

137 函数没有定义原型

24 D Procedure definition has no associated prototype MISRA/DERA 71 MISRA-C2 8.1 EADS-C 107,118

138 变量的范围可以减少

25 D Scope of variable could be reduced MISRA/DERA 22 MISRA-C2 8.7

139 变量在一个文件中只能被定义一次

26 D Variable should be defined once in only one file MISRA/DERA 25 AV 139 MISRA-C2 8.8

140 一个文件的变量应该被声明为静态的

27 D Variable should be declared static MISRA/DERA 23 MISRA-C2 8.10 8.11 EADS-C 97

上海创景计算机系统有限公司 8 Testbed 术语表 141 使用volatile类型的定义

106 S Volatile declaration. AV 205

142 三重表达式中类型不匹配

107 S Type mismatch in ternary expression. DERA 144

143 未使用 108 S Not used.

144 数组的下标不是整形

109 S Array subscript is not integral. DERA 162

146 标号不是包含在switch语句中的

111 S Label is not part of switch statement (MR). MISRA/DERA 55 AV 188

147 用typedef定义的类型名被重新定义

112 S Typedef name redeclared. MISRA/DERA 17 MISRA-C2 5.3 5.6

148 存在潜在的无限循环

28 D Potentially infinite loop found EADS-C 133

149 部分地使用结构体变量

29 D Partially used structure parameter

150 未使用

30 D Unused in C/C++

151 参数结构不一致

31 D Parameter structure mismatch

152 形参没有定义

32 D Formal parameter not defined

153 外部变量没有真实的声明

33 D No real declaration for external variable MISRA/DERA 25

154 源程序中使用非标准字符

113 s Non standard character in source. MISRA/DERA 5 AV 9 70 外部的在头文件中没有提及

46 S extern not in nominated include file. MISRA/DERA 27 73 逻辑上关联的表达式需要括号

49 S Logical conjunctions need brackets. MISRA/DERA 34 AV 158,213 EADS-C 98 79 一个表达式有多个功能

55 S Expression with more than one function. MISRA/DERA 46 91 在模块中使用#define

67 S #Define used in a block. MISRA/DERA 91 MISRA-C2 19.5

上海创景计算机系统有限公司 9 Testbed 术语表 92 使用#undef

68 S #undef used. MISRA/DERA 92 MISRA-C2 19.6 20.1

94 使用指针做逻辑比较

70 S Logical comparison of pointers. MISRA/DERA 103 AV 171 MISRA-C2 17.3

101 宏表示的带参数的函数,宏没有附上括号

77 S Macro is not function like. MISRA/DERA 96 AV 29 EADS-C 92

102 宏的参数没有括号

78 S Macro parameter not in brackets. MISRA/DERA 96 MISRA-C2 19.10 EADS-C 92

114 使用基本类型的声明

90 S Basic type declaration used. MISRA/DERA 13 AV 209 MISRA-C2 6.3 EADS-C 84

120 使用混合方式运算

96 S Use of mixed mode arithmetic. MISRA/DERA 43, 48 AV 162,180,184 MISRA-C2 6.2 1

121 多余的类型转换

97 S Use of redundant cast. MISRA/DERA 44, 48 AV 181

145 使用单行注释//

110 S Use of single line comment //. MISRA/DERA 1 MISRA-C2 2.2

155 表达式不是逻辑表达式

114 S Expression is not Boolean. MISRA/DERA 35,36,49 (One of) MISRA-C2 12.6 13.2

156 使用不正确的终止字符串 115 S String incorrectly terminated.

157 建议与0进行逻辑比较

116 S Boolean comparison with 0 preferred. DERA 138

158 对常量值进行逻辑非的运算 117 S Logical negation of constant value.

159 主函数必须为int(void)或者int(int,char*[]) 118 S Main must be int (void) or int (int,char*[]). DERA 146

160 存在嵌套注释

119 S Nested comment found MISRA/DERA 9 MISRA-C2 2.3

161 对有符号类型使用位操作

120 S Use of bit operator on signed type. MISRA/DERA 37 AV 161 MISRA-C2 12.7

上海创景计算机系统有限公司 10 Testbed 术语表 162 switch语句的表达式是逻辑表达式

121 S Use of boolean expression in switch. MISRA/DERA 63 AV 195 MISRA-C2 15.4

163 使用abort,exit等函数

122 S Use of abort, exit, etc. MISRA/DERA 126 AV 24 MISRA-C2 20.11

164 枚举类型的越限使用

123 S Banned use of enumerated type. DERA 139 EADS-C++ 56,57

165 使用前缀“++”、“――”

124 S Use of prefix ++ or -- DERA 136

166 在宏中使用“##”、“#”

125 S Use of ## or # in a macro DERA 155 MISRA-C2 19.13

167 在同一个文件中#if没有#endif

126 S A #if has no #endif in the same file. DERA 156 MISRA-C2 19.17

168 数组没有边界限定

127 S Array has no bounds specified. DERA 162, DERA 166 MISRA-C2 8.12

169 参数与全局变量同名

128 S Parameter has same name as global variable. MISRA/DERA 12 DERA 128 801 MISRA-C2 5.2

170 参数与类型或标识符同名

129 S Parameter has same name as type or tag. MISRA/DERA 12 801 MISRA-C2 5.2

171 禁止使用头文件的内容

130 S Included file is not permitted. MISRA/DERA 123,124 AV 17,19,21,22,25 MISRA-C2 2

172 在整个系统中声明的类型不一致

1 X Declaration types do not match across a system. MISRA/DERA 26 MISRA-C2 8.4

173 不同的文件中过程名被重用

34 D Procedure name re-used in different files. MISRA/DERA 25

174 在函数内部变量名被重用

131 S Name reused in inner scope. MISRA/DERA 21 DERA 128 AV 135,138 801 MISRA-C2

175 在逻辑表达式中使用赋值操作符

132 S Assignment operator in boolean expression. MISRA/DERA 35 AV 160 MISRA-C2 13.1

176 赋值操作符与“&&”或“||”连用

133 S Assignment operator in RHS of && or || MISRA/DERA 33 AV 157

177 在复杂的表达式中使用volatile类型的变量

134 S Volatile variable in complex expression. MISRA/DERA 46 MISRA-C2 12.2

上海创景计算机系统有限公司 11 Testbed 术语表 178 参数表定义是KR形式

135 S Parameter list is KR. AV 8

179 位操作符带有布尔型的操作数

136 S Bit operator with boolean operand. MISRA/DERA 36

180 表达式有副作用

35 D Expression has side effects. MISRA/DERA 46 AV 157 MISRA-C2 12.4

181 位操作符作用于布尔值

137 S Bit operator acting on boolean value. MISRA/DERA 36

182 结构体中使用无名位域

138 S Anonymous bit field used in structure. MISRA/DERA 113 AV 156

183 由于设计原因导致某些代码不可执行

139 S Construct leads to infeasible code. MISRA/DERA 52

184 存在不可控制的循环条件

140 S Infeasible loop condition found. MISRA/DERA 52

185 结构声明不完整

141 S Incomplete structure or class declaration. MISRA/DERA 108

186 变量声明不明确

2 X Ambiguous declaration of variable. MISRA/DERA 25

187 形参的声明形式上不一致

142 S Parameter list declarations are inconsistent. MISRA/DERA 73

188 函数的原形与定义的形参名称不一致

36 D Prototype and Definition name mismatch. MISRA/DERA 74 MISRA-C2 16.4

189 函数调用有执行顺序副作用

1 Q Call has execution order dependant side effects. MISRA/DERA 33, 46 AV 157,204 MISRA-C2 12.2

190 函数有静态局部变量的副影响

37 D Function has persistent local side effects. MISRA/DERA 33, 46

191 表达式中使用{}

143 S Curly brackets used in expression.

192 禁止使用浮点运算

144 S Floating point not permitted. DERA 129

193 194

无效的 #if表达式 #define有空的参数列表

145 S #if has invalid expression.

146 S #define with empty parameter list.

上海创景计算机系统有限公司 12 Testbed 术语表 195 程序预处理后存在欺骗性字符

147 S Spurious characters after preprocessor directive MISRA-C2 19.16

196 过程/函数没有返回类型

148 S No return type for function/procedure. MISRA/DERA 75 EADS-C 108

197 过程的指针参数被重新分配地址

149 S Reference parameter to procedure is reassigned.

198 LCSAJ密度超过***

2 Q LCSAJ density exceeds ***. DERA 145

199 函数类型使用Volatile或const

150 S Volatile or const used in function type. DERA 147

200 在宏定义中使用全局变量

151 S Use of global variable in macro definition DERA 159

201 宏定义中有一条注释

152 S Use of a comment in a macro definition. DERA 155

202 在预处理指示中有一条注释

153 S Use of a comment in a pre-processor directive DERA 155

203 在循环语句中有多个控制变量

38 D More than one control variable for loop. DERA 140 EADS-C 165

204 存在头文件包含头文件

154 S Nested header files found. DERA 168

205 在预处理指示之间存在注释

155 S Comments between preprocessor directives. DERA 161

206 在宏的内部使用关键字“defined”

156 S Use of 'defined' keyword in macro body. DERA 158 MISRA-C2 20.1

207 更改字符串内的字符文字

157 S Modification of string literal. DERA 130

208 表达式中有超过***个子条件

158 S Expression with more than *** subconditions. DERA 146

209 使用指针与0或NULL比较

159 S Comparing pointer with zero or NULL. DERA 163 AV 175

210 宏扩展中有循环

160 S Loop in macro expansion.

211 for语句中存在声明

161 S Declaration in for statement.

上海创景计算机系统有限公司 13 Testbed 术语表 212 类声明中包含方法定义

162 S Method defined within class declaration.

213 函数名以大写字母开始

163 S Function starts with upper case character. EADS-C 74

214 使用void*指针 164 S Use of void * pointer.

215 216 217 218 219

类声明嵌套

函数体中包含类声明 类定义中包含类变量声明

函数在成员变量处被调用,但函数没有const关键字 类成员有前向引用

165 S Nested class declaration.

166 S Class declared in function body.

167 S Class variable declared in class definition. AV 141

168 S Call by value parameter not const. EADS-C++ 34

169 S Use of forward reference of class member.

220 被调用的过程既没有原型也没有定义 170 S Procedure call has no prototype and no defn.

221 变量有内部和外部的联接

171 S Variable has internal and external linkage. MISRA 24 AV 138

222 变量声名很烦琐

172 S Variable declared multiply. MISRA 25 MISRA-C2 8.9

223 循环有多入口

39 D More than one entry to a loop

224 循环有多出口

40 D More than one exit from a loop EADS-C 128

225 过程调用没有原型声明

41 D Procedure call has no prototype declared. MISRA/DERA 71 EADS-C 118

226 过程调用没有原型声明

173 S Class member starts with upper case character.

227 类成员用小写字母开头

174 S Class member starts with lower case character.

228 函数名以小写字符开始

175 S Function starts with lower case character.

上海创景计算机系统有限公司 14 Testbed 术语表 229 代码中没有标准的出口顺序

176 S Non standard escape sequence in source. MISRA/DERA 5 MISRA-C2 4.1 7.1

230 在函数返回中使用局部指针返回

42 D Local pointer returned in function result. AV 111

231 在新一行标识符没有被声明

177 S Identifier not declared on new line. AV 58,152 EADS-C 83

232 声明语句没有另起一行写

178 S Declaration statement not on new line. EADS-C 156

233 外部变量应该在头文件的开始声明 179 S Extern not at start of header file.

234 在声明变量时,*和名称之间没有空格

180 S No space between * or & and name in declaration.

235 在if,while,for表达式之间没有空行

181 S No space between if, while, for and expresn. EADS-C 148

236 for表达式的”;”之后没有间隔

182 S No space after semi colon in for expression. EADS-C 151

237 for表达式的”;”之后没有换行

183 S No newline after semi colon. AV 42

238 “->”或“[ ]”操作符的周围没有空格

184 S Spaces round -> or [] operators. AV 63

239 一元操作符和操作数之间有空格

185 S Space between unary operator and operand. AV 63 EADS-C 153,154

240 二元操作符前或后缺少空格

186 S Space missing before or after binary operator. EADS-C 149

241 代码中使用Tab键来缩进代码

187 S Tab character in source. AV 43 EADS-C 138

242 “{”或“}”没有上下对齐

88 S { or } not on line by itself. AV 61 EADS-C 142

243 一行的输入超过极限,在Val.dat文件中可设置门限 189 S Input line exceeds limit. Set in Val.dat file. AV 41 EADS-C 140

244 “{”“}”之间的内容没有缩进两段间隔

190 S { ... } contents not indented by *** spaces. AV 44 EADS-C 139,144

245 函数名和圆括号之间有空格

191 S Space between function name and parenthesis. EADS-C 152

上海创景计算机系统有限公司 15 Testbed 术语表 246 247 248

定义函数时,函数名和static不在同一行 函数定义中Inline行应当放在单独一行 在成员定义中Const行应当放在单独一行

192 S Static not on separate line in function defn.

193 S Inline not on separate line in function defn.

194 S Const not on separate line in member defn.

249 函数的返回类型需要另起一行 195 S Function return type needs a new line.

250 251 252 253

类开始没有访问标识 访问标识应当有有效的顺序 结构中包含私有语句 使用匿名的名称空间

196 S Access specifier missing (added by Testbed). AV 57

197 S Access specifiers in invalid order. AV 57 EADS-C++ 2

198 S Use of privacy statement in struct. EADS-C++ 54

199 S Use of anonymous namespace.

254 用宏定义数字常量

200 S Define used for numeric constant. AV 30 EADS-C 80,88 EADS-C++ 51

255 在表达式中使用替代数字的文字

201 S Use of numeric literal in expression. AV 151 EADS-C 80,87

256 类成员不是私有的

202 S Class data is not private. EADS-C++ 18

257 对常量强制类型转换

203 S Cast on a constant value. MISRA-C2 11.5

258 保留字Contiue和goto没有被定义成垃圾 204 S Continue or goto not defined to rubbish.

259 260

不要使用多重继承 文件间递归

205 S Use of multiple inheritance. EADS-C++ 60

1 U Inter-file recursion found. MISRA/DERA 70 AV 119 MISRA-C2 16.2 EADS-C 117 E

261 在系统中任何地方程序都没有被调用 2 U Procedure not called anywhere in system.

262 类初始化器顺序错乱

206 S Class initialiser out of order. AV 75 EADS-C++ 9,10

上海创景计算机系统有限公司 16 Testbed 术语表 263 存在被0除

43 D Divide by 0 found. EADS-C 103

264 其它文件没有调用这个文件的程序

3 U No procedures in this file called from other files.

265 266

在C++中使用老式的/*注释符 私有成员名称末尾需要下划线

207 S Use of old style /* comments in C++ AV 126 EADS-C++ 46

208 S Private data name needs trailing underscore.

267 预处理命令没有缩进

209 s Preprocesor command indented.

268 宏名称没有大写

210 S Macro name is not upper case. EADS-C 61

269 270 271 272

重载了&&, ||和逗号 类中使用了友元函数 使用了友元类 成员没有声明为虚拟

211 S Overloaded &&, || or comma. AV 159 EADS-C++ 21

212 S Use of friend function in class. EADS-C++ 20

213 S Use of friend class. EADS-C++ 20

214 S Member not declared virtual. EADS-C++ 15

273 构造函数或类被成员变量调用 215 S Struct or class called by value.

274 指针名称没有必须的后缀

216 S Pointer name does not have required suffix. EADS-C 72

275 变量名称只有大小写不同

217 S Names only differ by case. EADS-C 52

276 函数名和库函数名相同

218 S Name is used in standard libraries. MISRA-C2 20.2 EADS-C 49

277 使用以下划线开始的变量名

219 S User name starts with underscore. AV 47 EADS-C 48,59

278 全局类型没有前缀 220 S No prefix for global type.

279 类/结构/联合/枚举的名称以小写字符开始

221 S Start of class/struct/union/enum lower case. AV 50 EADS-C 66

上海创景计算机系统有限公司 17 Testbed 术语表 280 变量名的第一个字符是大写的

222 S Start of variable is upper case. EADS-C 70

281 全局函数没有前缀

223 S No prefix for global function.

282 枚举类型变量的第一个字符是大写的

224 S Start of enumeration is upper case. AV 52

283 文件的扩展名不是cpp或hpp 225 S File extension is not cpp, or hpp.

284 文件名包含大写字母

3 Q Filename contains upper case letters.

285 位域不是八进制,十六进制或没有后缀u

226 S Bit field is not octal, hex or suffix u; MISRA-C2 3.5

286 位操作数不是八进制,十六进制或没有后缀u 227 S Numeric bit operand is not octal,hex or u.

287 在宏定义中,“(”或“{”不匹配 228 S Bracket mismatch ( or { in macro definition

288 在宏定义中,“)”或“}”不匹配 229 S Bracket mismatch ) or } in macro definition

289 没有类的拷贝构造函数的定义 230 S No copy constructor defined for class.

290 没有类的赋值操作的定义

231 S No assignment operator defined for class.

291 没有类的析构函数的定义

232 S No destructor defined for class. EADS-C++ 13

292 没有类拷贝构造函数的指针定义

233 S No copy constructor for class with pointers AV 76 EADS-C++ 4

293 没有类的赋值操作的指针定义

234 S No assignment operator for class with pointers AV 76 EADS-C++ 4

294 没有类的析构函数的指针定义

235 S No destructor for class with pointers EADS-C++ 4

295 类中没有使用新的赋值操作

236 S New used in class without asignment op.

296 赋值操作的参数不是常量

237 S Assignment operator parameter not const.

上海创景计算机系统有限公司 18 Testbed 术语表 297 模版的数目超过***

238 S Number of templates exceeds ***.

298 类中没有使用拷贝构造函数

239 S New used in class without copy constructor.

299 300 301 302

使用动态造型 使用reinterrupt造型 使用const造型

带有#define的被包含文件没有被保护

240 S Use of dynamic_cast. AV 185

241 S Use of reinterpret_cast.

242 S Use of const_cast.

243 S Included file not protected with #define. AV 27,35 MISRA-C2 19.15 EADS-C 9

303 304

重载new和delete 在嵌套模块中有case语句

244 S new or delete overloaded.

245 S Case statement in nested block. MISRA-C2 15.1 15.5

305 类缺少访问标识

246 S Class has missing access specifiers.

306 宏定义调用自己

247 S Macro definition calls itself. 2

307 在预处理程序中被0除

48 s Divide by zero in preprocessor directive.

308 对布尔类型的操作不当

249 S Operation not appropriate to boolean type.

309 未使用 44 D Not used.

310 被包含文件内包含文件

250 S Cyclic included file nesting found.

311 使用了stdio.h而不是iostream.h 251S Use of stdio.h instead of iostream.h.

312 文字数字使用小写后缀

252 S Lower case postfix to literal number. AV 14 EADS-C++ 23,24

313 忽略了相反类型操作符

253 S Opposite type operator missing.

上海创景计算机系统有限公司 19 Testbed 术语表 314 运算没有返回this指针的引用

254 S Operator = doesn't return reference to *this. AV 82

315 使用#if,#ifdef,#else,#elseif

255 S Found #if, #ifdef, #else, #elif . AV 26

316 程序原代码超过***行

256 S Procedure exceeds *** source lines of code. AV 1 EADS-C 115

317 #include后的文件名没有加“< >”

257 S Filename in #include not in < > . AV 33

318 头文件中包含多个类

258 S More than one class in header file.

319 语句没有另起一行开始写

259 S Statement not on new line (added by Testbed). AV 42

320 类中没有缺省的构造函数声明

260 S No default constructor declared for class.

321 未使用 261 S Not used

322 非虚函数重定义

262 S Non virtual function redefined. AV 94

323 禁用命名空间

263 S Namespace prohibited.

324 禁用类模版

264 S Class template prohibited.

325 函数模版禁用

265 S Function template prohibited.

326 类声明中有构造函数定义

266 S Constructor defined within class declaration.

327 用小写字符表示十六进制数

267 S Hexadecimal number with lower case char. AV 150

328 for循环语句使用空初始化表达式

268 S Empty initialisation exprsn in for loop. AV 200 EADS-C 165

329 for循环语句使用空增量表达式

269 S Empty increment exprsn in for loop. AV 200 EADS-C 165

330 for循环语句的初始化表达式很复杂

270 S For loop initialisation is not simple. AV 198 MISRA-C2 13.5

上海创景计算机系统有限公司 20 Testbed 术语表 331 for循环语句的增量表达式很复杂

271 S For loop incrementation is not simple. AV 199 MISRA-C2 13.5

332 使用#ifndef(参考删除)

272 S Found #ifndef (ref. removed). AV 28

333 使用#define

273 S Found #define. AV 31

334 变量名称的长小于***

274 S Name found with length less than ***. EADS-C 37

335 结构,联合或枚举缺少标识符 275 S Tag missing in struct, union or enum.

336 case不是switch语句的枚举部分 276 S Case is not part of switch enumeration.

337 switch语句的选择不是枚举

277 S Switch chooser is not an enumeration.

338 switch语句缺少附加的case语句

278 S Switch has missing or extra cases. AV 194

339 使用Try关键字

279 S Try keyword found. AV 208 EADS-C++ 35

340 使用Catch关键字

280 S Catch keyword found. AV 208 EADS-C++ 35

341 使用Throw关键字

281 S Throw keyword found. AV 208 EADS-C++ 35

342 使用易变关键字

282 S Mutable keyword found. EADS-C++ 6

343 使用多个直接继承

283 S Multiple direct inheritance found. AV 88 EADS-C++ 60

344 强制转换之前有强制转换 84 S Cast preceded by a cast.

345 类不需要定义在文件中

285 S Class definition not needed in file. AV 38

346 在头文件中定义函数

286 S Functions defined in header file. AV 39 MISRA-C2 8.5

347 在头文件中定义变量

287 S Variable definitions in header file. AV 39 MISRA-C2 8.5

上海创景计算机系统有限公司 21 Testbed 术语表 348 349 350 351

头文件的扩展名不是.h 头文件名不包含类名 文件名不包含被定义的类名 函数的第一个参数与函数不同行

288 S Header file is not .h AV 32,53 EADS-C 13

289 S Header file name does not include class name.

290 S File name does not contain defined class name.

291 S First parameter not on same line as function. AV 58

352 #include和文件名之间没有空格

292 S No space between #include and filename. MISRA-C2 19.3

353 使用非标准的构造

293 S Non Ansi construct used. MISRA 1 AV 8 MISRA-C2 1.1 EADS-C 135

354 被嵌套的命名空间超过***

294 S Namespace nested more than *** deep. AV 99

355 使用连字

295 S Use of digraph AV 12 EADS-C++ 52

356 357

函数/过程在块范围内中声明 内联函数多于***行

296 S Function declared at block scope. AV 107 MISRA-C2 8.6

297 S Inline member has more than *** source lines.

358 使用非const指针指向函数

298 S Non const pointer to function. AV 172

359 函数指针的声明没有使用typedef

299 S Pointer to function declared without typedef. AV 176

360 指针在使用之前没有检查是不是为null

45 D Pointer not checked for null before use AV 174 EADS-C 122

361 存在不可达代码

1 J Unreachable Code found. MISRA/DERA 52 AV 186 MISRA-C2 14.1

362 文件扩展名不是.cpp

300 S Filename extension is not .cpp AV 54

363 “}”和“{”不在同一条垂直线上

301 S } not aligned vertically below {. AV 60 EADS-C 143

364 注释中可能包含代码

302 S Comment possibly contains code AV 127 MISRA-C2 2.4 EADS-C 32,168

上海创景计算机系统有限公司 22 Testbed 术语表 365 366

虚类成员函数必须要虚析构函数 成员函数应该定义成常量类型

303 S Virtual class members need virtual destructor. AV 78 EADS-C++ 14

46 D Member function should be declared const. AV 69 EADS-C++ 6

367 使用无符号数进行运算

304 S Arithmetic performed on unsigned values. AV 163

368 369 370

对标准...未使用的检查标注 未使用的检查标注 使用了C类型转换

305 S Unused inspect annotation for standard ...

2 J Unused inspect annotation

306 S Use of C type cast. AV 185 EADS-C++ 25

371 使用#LINE,#ERROR预处理指示

307 S Use of #LINE, #ERROR preprocessor directives. AV 26

372 未使用的检查标注

47 D Unused inspect annotation.

373 未使用 308 S Not used.

374 375 376

“*”或“&”没有和类型连在一起 发现有数组参数

非局部定义不在命名空间里

309 S Asterisk or ampersand not attached to type. AV 62

310 S Array parameter found. AV 97

311 S Non local declaration not in a namespace. AV 98

377 函数名称不全是小写

312 S Function name is not all lowercase. AV 51

378 变量名称不全是小写

313 S Variable name is not all lowercase. AV 51

379 企图写未打开的文件

48 D Attempt to write to unopened file Fil

380 文件指针在退出时没有关闭

49 D File pointer not closed on exit Fil

381 switch语句只有一条case和default

314 S Switch has only 1 case and default. AV 196

上海创景计算机系统有限公司 23 Testbed 术语表 382 在“.”操作符的前后是空白

315 S Blank before/after . operator. AV 63 EADS-C 155

383 位域不是无符号整型

316 S Bit field is not unsigned integral AV 154 MISRA-C2 3.5

384 Typedef定义的名称以小写字母开始

317 S Typedef name starts with lower case letter. AV 50 EADS-C 66

385 名称的第一个字母之后不是小写的

318 S Name letters after first not lower case. AV 50

386 构造函数没有完全初始化

319 S Constructor has insufficient initialisers. AV 74,77 EADS-C++ 9

387 未使用 320 S Not used.

388 未使用 321 S Not used.

389 被包含的文件有路径 4 Q Included file has path.

390 default不是switch语句最后的case

322 S Default is not last case of switch. MISRA-C2 15.3 EADS-C 163

391 switch有多个default

323 S Switch has more than one default case. EADS-C 163

392 宏调用时,参数个数不正确

324 S Macro call has wrong number of parameters. MISRA-C2 19.8

393 标记符使用不一致

325 S Inconsistent use of tag. MISRA-C2 5.4

394 声明变量缺少变量类型

326 S Declaration is missing type. MISRA-C2 8.2

395 结构成员名称重用

327 S Reuse of struct or class member name. MISRA-C2 5.7

396 在位域结构中存在非位域成员

328 S Non bit field member in bitfield struct. MISRA-C2 3.5

397 无格式字符操作不当

329 S Operation not appropriate to plain char. MISRA-C2 6.1

398 存在潜在的类型转换

330 S Implicit conversion of underlying type.

上海创景计算机系统有限公司 24 Testbed 术语表 399 字面值需要一个u后缀

331 S Literal value requires a u suffix. MISRA-C2 10.6 EADS-C++ 23

400 强制扩展复杂的整型表达式

332 S Widening cast on complex integer expression. MISRA-C2 10.3

401 强制扩展复杂的浮点型表达式

333 S Widening cast on complex float expression. MISRA-C2 10.4

402 当”~”或“<<”操作符应用于小类型时,没有强制转换 334 S No cast when ~ or << applied to small types. MISRA-C2 10.5

403 被定义的操作符包含非法项

335 S operator defined contains illegal items. MISRA-C2 19.14

404 #if扩展包含define操作符

336 S #if expansion contains define operator. MISRA-C2 19.14

405 在#if中使用未定义的宏变量

337 S Undefined macro variable in #if. MISRA-C2 19.11

406 #include之前有非预处理指示

338 S #include preceded by non preproc directives. MISRA-C2 19.1

407 #include 带有非法项

339 S #include directive with illegal items. MISRA-C2 19.3

408 像使用宏一样使用函数

340 S Use of function like macro. MISRA-C2 19.7 AV 29 EADS-C++ 48

409 预处理程序构造作为宏参数

341 S Preprocessor construct as macro parameter. MISRA-C2 19.9

410 在预处理程序之后有额外的字符

342 S Extra chars after preprocessor directive. MISRA-C2 19.6

411 在同一个文件中#else没有#if

343 S #else has no #if, etc in the same file. MISRA-C2 19.17

412 强制转换volatile 型的值

344 S Cast on volatile value. MISRA-C2 11.5

413 位操作带有浮点操作数

345 S Bit operator with floating point operand. MISRA-C2 12.12

414 位域既不是整型也不是枚举类型

346 S Bit field is not integral or enum type. AV 154

415 宏参数列表有主要的间隔

347 S Macro parameter list has leading space. AV 29

上海创景计算机系统有限公司 25 Testbed 术语表 416 使用NULL宏

348 S Use of the NULL macro. AV 175 EADS-C++ 50

417 枚举变量不全是小写的

349 S Enumeration is not all lower case. AV 52

418 常量不全是小写的

350 S Const variable is not all lower case. AV 52

419 类型声明带有变量定义

351 S Type declaration with variable definition. AV 141

420 不在头文件中声明类型

352 S Declaration of type not in header file. AV 40

421 内存没有被释放

50 D Memory not freed. EADS-C 127

422 从释放内存读数据

51 D Attempt to read from freed memory. EADS-C 126

423 内联函数多于***条语句

353 S Inline member has more than *** statements. AV 121 EADS-C++ 5

424 外部声明不在头文件中

354 S Extern declaration is not in header file. AV 139 EADS-C 7,8

425 变量名不超过***个字符

355 S Variables not unique within *** characters. AV 46 EADS-C 38

426 声明指针的指针

356 S Pointer to pointer declared. AV 169

427 基类有虚基类和非虚基类

357 S Base class is mixed virtual and non virtual. AV 89

428 类的成员名重用

358 S Class member name reused. AV 135 EADS-C++ 30

429 使用缺省参数

359 S Default parameter use. EADS-C++ 42

430 矛盾的类型

360 S Incompatible type 801 MISRA-C2 8.4

431 表达式需要括号

361 S Expression needs brackets. AV 213 EADS-C 98

432 命名空间里存在main函数

362 S Main program in a namespace AV 98

上海创景计算机系统有限公司 26 Testbed 术语表 433 成员变量不是用“=”赋值

52 D Member(s) not assigned in = operator. AV 83

434 未使用 363 S not used

435 继承类对缺省的参数重定义

364 S Inherited default parameter redefined. AV 95

436 十六进制数用大写字符

365 S Hexadecimal number with upper case char. EADS-C 90

437 字符串的延续使用“\\”

366 S String continuation - use of \\ EADS-C 141

438 宏的延续使用“\\”

367 S Macro continuation - use of \\ EADS-C 141

439 pragma的延续使用“\\”

368 S Pragma continuation - use of \\ EADS-C 141

440 变量名称的长度大于***

369 S Name found with length greater than ***. EADS-C 39

441 if嵌套深度大于***

370 S IF nest depth greater than ***. EADS-C 121

442 参数列表中的逗号之后没有空格间隔

371 S No space after comma in parameter list EADS-C 150

443 “*”/“&”没有和变量名称连在一起

372 S Asterisk/ampersand not attached to name EADS-C 158

444 使用整数除法

373 S Use of integer division MISRA-C2 3.3

445 变量名称与类型冲突

374 S Name conflict with typedef MISRA-C2 5.3

446 使用八进制的出口顺序

376 s Use of octal escape sequence MISRA-C2 7.1

447 字符串中使用空格字符

377 s Null character used within a string MISRA-C2 7.1

448 在结构/联合/枚举中标识符和类型不一致

378 S Tag and type mismatch in struct/union/enum. EADS-C 86

449 宏代码超过***行

379 S Macro exceeds *** continuation lines. EADS-C 91

上海创景计算机系统有限公司 27 Testbed 术语表 450 枚举元素没有在新的一行书写

380 S Enumeration element not on a new line. EADS-C 157

451 枚举,结构和联合的变量没有被typedef

381 S Enum, struct or union not typedeffed. EADS-C 85

452 没有返回值的声明缺少void

382 S (void) missing for discarded return value. EADS-C 116

453 标识符名称和宏的名称一致

383 S Identifier name matches macro name. MISRA-C2 5.6,5.7

454 在31个字符内,标识符和宏的名称一致

384 S Identifier matches macro name in 31 chars. MISRA-C2 5.1

455 MISRA的switch语句有语法违反

385 S MISRA switch statement syntax violation. MISRA-C2 15.0

456 所有的内部联接调用不可达 3 J All internal linkage calls unreachable.

457 程序之后少于***行空白行

386 S Less than *** blank lines following procedure. EADS-C 147

上海创景计算机系统有限公司 28