1226_MISRA_C规范学习_标准库相关的规则要求

213 篇文章 6 订阅

全部学习汇总: GitHub - GreyZhang/misra_c_hacking: MISRA C, I'm coming! Happy hacking!

20.1, 标准库中的保留符号不能够定义、重定义或者取消定义。针对这条规则,其实很好总结,总之就是一句话:不要影响标准库的功能,不要改标准库的信息。

20.2, 标准库中的宏、对象以及函数的名称不能够重用。

20.3, 传递给库函数的参数全都应该进行有效性的检查。

20.4, 不能够使用heap。这个可能有些自己折腾着玩的小项目还是不符合要求的,有的FreeRTOS的版本中用了标准的heap操作。

20.5, errno,错误码提示器,不能用。

20.6, stddef.h中的offsetof宏定义不能用。如果是用了位域,可能会有兼容性问题。

20.7, 这一个其实就不用细看了,连goto都不能用,更何况这一对儿接口。

20.8, 信号处理功能不能够用。

20.9, stdio.h中的功能在产品代码中不能够有。这意思似乎是说,非产品代码还是可以有的。我觉得可能是因为有时候这里面的工具可以是一种很好的调试手段。不过,文档中的解释是说,这个库里面的很多功能行为是未定义的。

对我来说,这个库其实是可以没有的。我用这个库可能更多关注于printf,但是现在我自己使用的printf其实是可以脱离这个库而存在的。

20.10, 字符与整形之间的转换功能不能用。这个得注意一下,需要改正,之前我自己的确是用过的。

20.11, stdlib中的abort,exit,system,getenv等都不能够用。

20.12, time.h中的时间处理功能不能用。这个也是需要更正的,目前我的确也是用过的。

看了这个章节,给我一个感觉。库文件中的功能能够不用的话尽量不要去用,或许这会是一个很好的习惯。关于标准库的功能,本身我自己的熟悉度就不够,仅有的几个熟悉的基本还都被规则判了死刑。既然如此,那么直接不用或许会是最好的选择。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值