MISRA-C 2004 规则解读(41S-60S)
41 S:Ellipsis used in procedure parameter list. 函数入参中使用省略符号,省略符号允许不确定的入参个数,建议避免该编程方式的使用。
42 S:Use of bit field in structure declaration. 避免在结构体声明中使用位字段
struct bitfield1 {INT_32_t x:1;}; /* not compliant */
43 S:Use of setjmp/longjmp. 避免使用setjmp/longjmp语句,使用该语句使得程序移植性差,结构混乱。
44 S:Use of banned function or variable. 不允许使用关键字命名变量和函数,避免使用与库文件中同名的函数和变量。
45 S:Use of C++ keyword. 不允许使用C++关键字:
void static_45(void)
{UINT32_t public = 0; /* not compliant */UINT32_t private = 0; /* not compliant */UINT32_t protected = 0; /* not compliant */UINT32_t operator = 0; /* not compliant */UINT32_t new = 0; /* not compliant */UINT32_t template = 0; /* not compliant */UINT32_t virtual = 0; /* not compliant */UINT32_t delete = 0; /* not compliant */UINT32_t friend = 0; /* not compliant */UINT32_t cout = 0; /* not compliant */UINT32_t cin = 0; /* not compliant */UINT32_t endl = 0; /* not compliant *//* ... */
}
46 S:extern not in nominated include file.在某些程序中,只有指定的文件可以使用extern修饰符,如果不在指定的文件中使用extern修饰符静态测试会提示警告。
47 S:Array bound exceeded. 使用数组下标获取数组内容时,需要对越界进行防护。
48 S:No default case in switch statement. 避免在使用switch语句时无default分支:
49 S:Logical conjunctions need brackets. 逻辑运算符连接的判断条件,需要使用括号来包围。
void static_49(void)
{BOOL flag = TRUE;INT_32 y = 0, x = 0, z = 1;if (x < 0 || z + y != 0) /* not compliant */{flag = FALSE;}if ((x < 0) || (z + y != 0)) /* compliant */{flag = FALSE;}
}
50 S:Use of shift operator on signed type. 避免对有符号数使用移位运算符:
51 S:Shifting value too far. 避免在移位操作中移动跨度过长。
52 S:Unsigned expression negated.对有符号变量进行运算,有造成变量翻转的风险。
53 S:Use of comma operator.避免使用逗号运算符。
54 S:Sizeof operator with side effects. 不能对表达式使用sizeof操作符。
55 S:Expression with more than one function. 避免在一个表达式中使用两个函数的返回值。
56 S:Equality comparison of floating point. 避免对两个浮点型数据进行比较。
57 S:Statement with no side effect. 避免出现即不改变逻辑又不进行赋值的无效语句。
58 S:Null statement found. 在某个控制语句前出现空行代码,这个空行有可能是开发人员忘记了实现某个功能而留下的坑,如果确实想空一行再写代码,建议补充注释:
void static_58(void)
{UINT32_t Timing_Loop = 100U;/* not compliant - decrement is not part of loop */while ( Timing_Loop > 0U ); Timing_Loop--;; /* compliant as followed by comment */}
59 S:Else alternative missing in if. 在与if/else if配对中缺少else的分支:
void static_59 (void)
{UINT32_t x = 1u;if ( x == 1u ){/* ... */ ;}else if ( x == 5u){/* ... */ ;} /* not compliant */
}
60 S:Empty switch statement. 避免出现空switch(无case的情况)语句。
MISRA-C 2004 规则解读(41S-60S)相关推荐
- MISRA-C 2004 规则解读(61S-80S)
61 S:Switch contains default only. 避免switch语句只有default分支而没有case分支. 62 S:Switch case not terminated w ...
- MISRA-C 2004 规则解读(201S-220S)
201 S:Use of numeric literal in expression. 该条规则建议使用宏或者枚举代替具体的数字,以提高代码的可维护性. 202 S:Class data is not ...
- 全国大学生智能汽车竞赛-讯飞赛道规则解读
「全国大学生智能汽车竞赛」是教育部倡导的大学生科技A类竞赛,中国高等教育学会将其列为含金量最高的大学生竞赛之一.比赛每年吸引了包括清华.上交.复旦.北航等500多所理工类高校,超10万名大学生参加 ...
- 2013-2019年百度搜索算法规则解读与应对
2013-2019年百度搜索算法规则解读影响与建议 百度冰桶算法 百度冰桶算法1.0------>算法自2014年8月30日上线 主要打击移动端网站强行用户下载APP.用户登陆才能继续使用和大面 ...
- 2022年双11淘宝满减规则解读
2022年双11淘宝满减规则解读 双11期间主要关注双十一红包,那么今年淘宝双11满减活动有没有?因为10月24日20点双11预售就开始了,不少小姐姐想知道2022年淘宝双十一满减是多少,本文小编赵一 ...
- 四川一度智信:拼多多活动报名规则解读
四川一度智信:拼多多活动报名规则解读 活动最为网店推广的重要渠道,一直都受到卖家们的欢迎和喜爱.拼多多的平台活动也都是重要的流量入口,能够对店铺发展产生重要的促进作用.依靠活动,店铺往往能够在短时间内 ...
- 2022唯品会双11活动规则解读
2022唯品会双十一红包怎么领?2022唯品会双11活动规则解读 今年双十一活动开启时间每个平台都不同,唯品会算是比较早的一个,双十一活动正式开启时间在10月20日晚8点,大家都准备好抢购了吗?抢购之 ...
- 中金公司:全面注册制监管规则解读(附97页报告原文pdf下载链接)
省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年12月份热门报告盘点 罗振宇2023年跨年演讲PPT原稿 吴晓波2022年年终秀演讲PPT ...
- [原创]目前手把一扑克牌游戏最详细的规则解读
目前手把一扑克牌游戏最详细的规则解读 原本准备开发一个手把一的扑克牌游戏,要开发扑克牌游戏,必先通晓其规则,结合大学几年的寝室手把一经历写下了较为流行的烟威地区的手把一规则. ㈠简介 手把一是一种两人 ...
最新文章
- node基础学习——操作文件系统fs
- 谷歌chrome浏览器的源码分析(七)
- linux php 依赖,在php5-fpm-alpine docker容器中安装php-gd依赖于alpine linux
- SQL游标使用方法SQL游标使用方法(转)
- js笔记(三)ES5、ES5新增的数组的方法、字符串的方法、字符编码、对象的序列化和反序列化、bind
- Huffman树进行编码和译码
- 服务器系统关了,各种服务器系统的关机
- fastjson转换对象时出错,$ref: $.data.list[0].xxxx
- C语言里面的 malloc 函数
- QT程序自动拷贝所需动态库批处理
- python抓取直播源 并更新_虎牙直播源Python爬虫
- Android ActivityManager一些API介绍
- 只能修饰唯一一个html元素的选择器是,HTML常用标签和CSS选择器的使用及演示——2019.1.14...
- S3C2440驱动开发(一)
- winforms 文本框_在禁用的VB.Net WinForms文本框中自定义颜色的新方法
- Spring Boot项目WebService接口发布、调用、以及常见错误详解
- 精心为学弟学妹整理的 C语言/C++ 项目合集
- UE4+手柄对应按键测试
- BQ25798双电源输入4节电池升降压充电与最大功率跟踪于光伏板应用
- HYSBZ - 1086:王室联邦(树上分块?)