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