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 ...
- [原创]目前手把一扑克牌游戏最详细的规则解读
目前手把一扑克牌游戏最详细的规则解读 原本准备开发一个手把一的扑克牌游戏,要开发扑克牌游戏,必先通晓其规则,结合大学几年的寝室手把一经历写下了较为流行的烟威地区的手把一规则. ㈠简介 手把一是一种两人 ...
最新文章
- 实现计时、时钟,实时获取当前年月日时分秒,记录时间(获取当前的时间,开始计时,计时过程相当于你的电脑时钟)0000年00月00日 00:00:00
- 网络工程师_记录的一些真题_2008下半年上午
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)——无非是在传统遍历过程中修改叶子结点加入后继结点信息(传统是stack记录),然后再删除恢复...
- 最小外接矩形思路以及实现
- C++ OJ在线编程常见输入输出技巧与示例
- Implementation of WC in JAVA
- mac安装win10_mac制作win10启动盘教程
- react---之下拉菜单默认选中的值始终不变的问题
- [转载] python3 numpy函数_Python numpy总结(3)——常用函数用法
- jetty jndi mysql_jetty配置jndi数据源
- jdk1.8 windows 64位 下载
- Java之美[从蛮荒到撬动地球]之设计模式二
- 爱情骗我说有个地方叫地久天长
- 【前端】跨域 问题 原理 + 解决方案 下
- 计算机粘贴复制快捷键,电脑粘贴复制快捷键ctrl加什么(电脑快捷键方法大全)...
- 暾盛机器人_移动机器人视觉伺服.pdf
- 金融行业的数据分析怎么做?
- 报Warning如下: Warning: The CUDA driver must recompile the GPU librariesbecause your device is more rec
- 施乐700彩机服务器维修,佳铭办公设备:施乐彩机维修代码
- 无线路由器被蹭网后,有被黑的风险吗?
热门文章
- Java,该学什么?
- IMX6ULL 修改内核启动LOGO
- 入门级Python代码实时获取股市数据
- win10家庭版安装VMWare和Ubuntu 20.04 LTS
- php carbon详解,Carbon 中文文档
- 梦想汽车 NFT 系列
- c语言中鱼贯指针的编程题,泡面吧 IT宅男如何打造编程教学网站
- 保研华东师范计算机专硕,华东师范大学2020年硕士生推免生缺口很大,考研的学子机会来了...
- Linux系统Redis安装教程-附带后台启动
- DEDE建站如何去掉首页的index.html后缀?