1221_MISRA_C规范学习_关于函数的规则要求

213 篇文章 6 订阅

全部学习汇总: https://github.com/GreyZhang/misra_c_hacking

16.1, 函数的参数数目不能是可变的,这个我在工作中其实是遇到很多可变的设计,自然,遇到的基本都是不符合规范的了。

16.2, 函数不能够直接或者间接调用自己。这一条的主要目的是为了避免出现递归,最终导致堆栈空间使用问题。当然,针对递归的使用这里是一刀切了,直接不能用,即使是存储不会增长的尾递归也不允许使用。

16.3, 函数的参数必须要有名字。关于这一条,说起来还是很有意思的。我曾经为了让别人不容易看懂我的代码而故意不这么做,那时候我还是一个少年。

16.4, 函数定义以及声明的标识符必须对等。

16.5, 没有参数的函数在定义或者声明的时候参数中必须写一个void。我遇到很多有人省略void,其实省略掉之后意味着函数的参数可以是任意多个,这也与前面的可变数目的规则有一定的不符。

16.6, 传递给函数的参数数目必须与定义或者声明时候的数目相同。

16.7, 这个规则主要是用于C语言的,但是我在读C++的教程《think c++》的时候接触到了一个概念。函数的分类有三种:纯函数、修改器、模板(fill-in)。这里提到的功能描述其实是对于纯函数要求的。来到C,如果纯函数中的参数是指针类型,那么应该加一个const防止错误修改。

16.8, 带有非空返回值的函数退出路径必须是一个明确的return。

16.9, 函数标识符在使用的时候,要么用&来取地址,要么执行一次完整的函数调用。

16.10, 如果函数有错误码返回,那么应该看一下是否有错误报出。

这几条关于函数设计的规则都比较简单也比较容易理解,不过看了一遍之后我发现我接触过的项目开发中能够做到这样要求的似乎还没有遇到。个人的成长以及公司的进步看起来都是长路漫漫啊,继续上下求索吧!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MISRA C是一种 C 语言编码规范,旨在提高软件开发过程中的可靠性和可维护性。MISRA C2012是其最新版本,于2012年发布。 MISRA C2012规范共包含了143条规则,具体规定了C语言代码中应该遵循的编码规则。这些规则主要涵盖了代码结构、数据类型、函数、变量、运算符、错误处理、注释等方面。MISRA C2012要求程序员在编写代码时,严格遵循这些规则,以减少代码中的错误和潜在问题。 MISRA C2012的规定旨在帮助程序员编写可读性更高、可移植性更好的代码。此外,MISRA C2012还强调了代码的可靠性和安全性,可以防止一些常见的编程错误,如空指针引用和数组越界等问题。 MISRA C2012还包括了一些附录,提供了一些额外的编码指南,如对于特定编译器的建议、如何使用特定数据类型等。 总之,MISRA C2012是一种重要的编码规范,适用于C语言项目的开发。它能够帮助程序员在编写代码时遵循一些良好的编码习惯,提高代码的可读性、可靠性和可维护性。只有遵循了这些规则,我们才能更好地编写出高质量的软件。 ### 回答2: MISRA C是一套软件开发标准,旨在促进嵌入式系统中使用C语言的安全性、可靠性和可维护性。MISRA C的最新版本是MISRA C:2012。 MISRA C:2012标准包括143条规则,这些规则旨在避免一些常见的C语言编码错误,提高代码质量。这些规则涵盖了代码的可读性、可移植性、可靠性和可维护性。 MISRA C:2012标准的规则主要包括以下几个方面: 1. 编码风格:规定了代码的布局、空白字符使用、标识符命名等方面的规则,以提高代码的可读性。 2. 数据类型和自动转换:规定了数据类型的使用规则,避免了类型转换导致的错误。 3. 流程控制:规定了带标签的语句的使用、switch语句的default情况的处理等流程控制方面的规则。 4. 错误处理:规定了错误处理的方式,包括错误代码返回、错误标志设置等,以提高代码的可靠性。 5. 宏和预处理器:规定了宏的使用规则,避免了宏展开导致的错误。 MISRA C:2012标准旨在为开发人员提供一套规范,以确保软件代码的质量和可维护性。遵守这些规则可以帮助开发人员编写更安全、可靠的软件,减少潜在的编码错误。 此外,MISRA C:2012还提供了用于静态代码分析和自动化工具的支持,以帮助开发人员检测和修复不符合规范的代码。 总结来说,MISRA C:2012是一套用于嵌入式系统中C语言编码的标准,通过遵守这些规则可以提高代码的质量和可维护性,减少潜在的错误。 ### 回答3: MISRA C:2012是一种用于C编程语言的软件开发规范。它是由一组国际标准化组织制定的,旨在提高软件质量和可靠性,减少程序错误和漏洞。MISRA C:2012规范主要包括规定C编程语言的使用规则和最佳实践。 MISRA C:2012规范的目标是确保编写的C代码满足高质量和可靠性的要求。它强制执行一些基本的编程规则,如禁止使用具有不确定行为的语言特性,禁止未定义行为,限制使用某些语言功能等。这些规则旨在减少软件开发过程中可能出现的错误和潜在的安全漏洞。 另外,MISRA C:2012还提供了一些建议和最佳实践,以帮助开发人员编写更可读、可维护和可靠的代码。它涵盖了一系列的主题,包括命名规则、注释、缩进、代码结构和错误处理等。 遵守MISRA C:2012规范可以提供许多好处。首先,它可以提高软件的质量和可靠性,减少潜在的错误和漏洞。其次,它可以提高代码的可读性和可维护性,使其他开发人员更容易理解和修改代码。另外,MISRA C:2012规范还有助于提高团队成员之间的协作效率,因为所有人都遵守相同的标准。 总之,MISRA C:2012规范是一种促进高质量、可靠和可维护C代码编写的开发规范。它提供了一系列的编程规则和最佳实践,旨在减少错误和安全漏洞,并提高代码质量和可读性。遵守MISRA C:2012规范可以带来许多优势,包括更好的软件质量、可维护性和团队协作效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值