全部学习汇总: 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, 如果函数有错误码返回,那么应该看一下是否有错误报出。

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

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

  1. 追求卓越追求完美规范学习_追求新的黄金比例

    追求卓越追求完美规范学习 The golden ratio is originally a mathematical term. But art, architecture, and design a ...

  2. 1225_MISRA_C规范学习_预处理命令规则要求

    全部学习汇总: GitHub - GreyZhang/misra_c_hacking: MISRA C, I'm coming! Happy hacking! 19.1, 这一条应该难以全部实现,比如 ...

  3. SQL学习_常用函数参考

    1. AVG() 函数SELECT AVG(column_name) AS xxx FROM table_name// 从access_log中选择site_id和count,当count比count ...

  4. linux系统编程学习_(2)进程控制-- fork函数、exec函数族、回收子进程--孤儿进程僵尸进程、wait函数

    linux系统编程学习_(2)进程控制-- fork函数.exec函数族.回收子进程–孤儿进程僵尸进程.wait函数 进程控制 fork()函数 创建一个子进程. pid_t fork(void); ...

  5. python数据参数_零基础学习python数据分析——函数的参数

    原标题:零基础学习python数据分析--函数的参数 上一节课中我们讲了python的函数定义,Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数 ...

  6. 元学习 迁移学习_元学习就是您所需要的

    元学习 迁移学习 Update: This post is part of a blog series on Meta-Learning that I'm working on. Check out ...

  7. PostgreSQL学习手册(五) 函数和操作符

    PostgreSQL学习手册(五) 函数和操作符 一.逻辑操作符:     常用的逻辑操作符有:AND.OR和NOT.其语义与其它编程语言中的逻辑操作符完全相同. 二.比较操作符:     下面是Po ...

  8. C语言编程规范 学习笔记

    C语言编程规范 一.代码总体原则 1.清晰 2.简洁 3.选择适合的风格,与代码原有风格保持一致 二.头文件 背景 术语定义 原则 2.1 头文件中适合放置接口的声明,不适合放置实现 原则 2.2 头 ...

  9. C语言编程规范学习笔记和总结(附华为编程规范机试参考试题)

    目录 规范说明 一.头文件 原则1.1 头文件中适合放置接口的声明,不适合放置实现. 原则1.2 头文件应当职责单一 原则1.3 头文件应向稳定的方向包含 规则1.1 每一个.c文件应有一个同名.h文 ...

  10. 1083_MISRA_C规范学习_2004_Rule_5.3

    MISRA_C规范学习_2004_Rule_5.3 Grey 全部学习汇总: GitHub - GreyZhang/misra_c_hacking: MISRA C, I'm coming! Happ ...

最新文章

  1. 爆火的博士论文致谢,“炸”出了一批同行者,刚刚本人回应:祝愿大家努力终有所成!...
  2. 使用Docker构建你的第一个服务
  3. 华罗庚先生的数学教育思想
  4. 华为发布The New P30 Pro新机:全新配色+EMUI10系统
  5. 高速接口SFP、GbE、SRIO、PCIE、CPRI和SGMII的参考时钟选择问题
  6. 关于嵌入式的bin、hex、axf、map
  7. 使用bat脚本自动打开cmd并执行命令
  8. 程序设计课程报告2018212824沈园园
  9. 5GC 网元AMF、SMF、AUSF、UPF、PCF、UDM、NRF、NSSF、NEF介绍
  10. 技术经理成长复盘-激励
  11. WordPress按钮人机验证(1)
  12. python计算复数的辐角,(Python 3)1051复数乘法(15分),python31051
  13. H3C-2620AP配置日志
  14. 面向对象进阶 三大特性
  15. 理光M2004文件服务器,理光mp2014打印机怎么连接到电脑
  16. eclipse连接mysql数据库
  17. 剑灵灵动区服务器位置,剑灵第四次合服或将来临,终于合大区
  18. 利用PYTHON出小学数学题
  19. android手机舆情分析,基于Android平台的环境公共舆情监督系统研究
  20. Install cf v6

热门文章

  1. 扫描仪 无线 打印服务器,自带扫描仪、还能无线打印,Find X2 Pro实用功能分享...
  2. 软考系统集成项目管理工程师 | 计算题公式汇总
  3. 各个地区2.4G及5G信道一览表
  4. 一键logo生成器_logo制作助手下载-logo制作助手APP免费版下载v1.1
  5. SSM项目实战之十四:分页实现
  6. 在Ubuntu中搭建KMS服务器
  7. 基于SSD目标检测模型的人脸口罩识别
  8. 湿空气性质计算,随笔与学习记录 (3.露点温度,绝对湿度)
  9. Vrep学习笔记(一)
  10. R语言和Python交互