号外号外:无规矩不成方圆(4)

本文MISRA规则由嵌入式程序猿整理自网络,版权归原作者所有

不能使用三字母词

三字母词由2 个问号序列后跟1 个确定字符组成(如, ??- 代表“ ~”(非)符号,而??)代表“]”符号)。它们可能会对 2 个问号标记的其他使用造成意外的混淆,例如字符串 “(Dateshould be in the form ??-??-??)” 将不会表现为预期的那样,实际上它被编译器解释为 “(Dateshould be in the form ~~)”

标识符(内部的和外部的)的有效字符不能多于 31。

ISO 标准要求在内部标识符之间前 31 个字符必须是不同的以保证可移植性。即使编译器支持,也不能超出这个限制。

ISO 标准要求外部标识符之间前 6 个字符必须是不同的(忽略大小写)以保证最佳的可移植性。然而这条限制相当严格并被认为不是必须的。本规则的意图是为了在一定程度上放宽ISO 标准的要求以适应当今的环境,但应当确保 31 个字符/大小写的有效性是可以由实现所支持的。

使用标识符名称要注意的一个相关问题是发生在名称之间只有一个字符或少数字符不同的情况,特别是名称比较长时,当名称间的区别很容易被误读时问题就比较显著,比如 1(数字 1)和 l( L 的小写)、0 和 O、 2 和 Z、 5 和 S,或者 n和 h。建议名称间的区别要显而易见。

具有内部作用域的标识符不应使用与具有外部作用域的标识符相同的名称,这会隐藏了外部标识符。

外部作用域和内部作用域的定义如下。文件范围内的标识符可以看做是具有最外部( outermost)的作用域;块范围内的标识符看做是具有更内部( more inner)的作用域;连续嵌套的块,其作用域更深入。本规则只是不允许一个第二深层( second inner)的定义隐藏其外层的定义,如果第二个定义没有隐藏第一个定义,那么就不算违反本规则。

其他跟代码相关的规则,可以在具体的工程中,打开MISRA规则验证分析代码时候,对应代码看规则,印象会比较深刻。在这里就不赘述了。建议大家查看最新的规则。这个系列到这里就结束了,欢迎各位的关注

原文发布于微信公众号 - 嵌入式程序猿(InterruptISR)

原文发表时间:2015-05-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

C++ 智能指针详解

http://blog.csdn.net/xt_xiaotian/article/details/5714477

6571
来自专栏Albert陈凯

Scala代码编写中常见的十大陷阱

很多Java开发者在学习Scala语言的时候,往往觉得Scala的语法和用法有些过于复杂,充满语法糖,太“甜”了。在使用Scala编写代码时,由于语法和编写习惯...

2555
来自专栏LEo的网络日志

python技巧分享(一)

36813
来自专栏磐创AI技术团队的专栏

干货 | 如何写一个更好的Python函数?

《Writing Idiomatic Python》一书的作者在Medium上发表了一篇文章,给出了6个建议。

801
来自专栏coding for love

JS入门难点解析2-JS的变量提升和函数提升

(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)

1333
来自专栏老马说编程

计算机程序的思维逻辑 (9) - 强大的循环

循环 上节我们介绍了流程控制中的条件执行,根据具体条件不同执行不同操作。本节我们介绍流程控制中的循环,所谓循环就是多次重复执行某些类似的操作,这个操作一般不是...

2098
来自专栏CSDN技术头条

不到40行代码构建正则表达式引擎

原文:Build a Regex Engine in Less than 40 Lines of Code (作者:Nick Drane ,翻译:Diwei) ...

2006
来自专栏小李刀刀的专栏

[译]Laravel 5.0 之 Eloquent 属性转换

本文译自 Matt Stauffer 的系列文章. ---- 之前完全忘了要把这个 Laravel 5 的系列博客写完,不过最近看到了一篇关于属性转换的简介 L...

4308
来自专栏about云

hadoop开发必读:认识Context类的作用

问题导读: 1.Context能干什么? 2.你对Context类了解多少? 3.Context在mapreduce中的作用是什么? 本文实在能够阅读源码...

3504
来自专栏Crossin的编程教室

【Python 第19课】 函数

数学上的函数,是指给定一个输入,就会有唯一输出的一种对应关系。编程语言里的函数跟这个意思差不多,但也有不同。函数就是一块语句,这块语句有个名字,你可以在需要时反...

3087

扫码关注云+社区

领取腾讯云代金券