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

所有的自动变量在使用之前都应该被赋值。

自动变量有好几种可能性,上面的规则中也做了基本的介绍。对于我接触的嵌入式系统来说,根据经验来说这部分在大多数时候都是适用于局部量。由于所使用的存储是一个动态的,如果不进行初始化的话会有随机值出现影响最终的结果。

对于全局量来说,为了满足ISO C中的初始化为0的要求,一般都是通过启动代码等处理成符合要求的。但是这个规则说的也对,其实这个不是一个完全默认的行为,至少是在技术层面上存在不初始化为0的可能性。

我在软件开发中这方面栽坑不多,我采用的方法也非常简单,给自己一个强制性的规则要求:1,启动代码中,对于全局量进行初始化为0。2,但凡使用局部量一律在定义的时候先初始化,一般是初始化为0。这两条的习惯基本就可以保证代码的规范性,自然,最终的目的还是为了减少bug的出现。

上面的要求在一定程度上属于一点苛求,尤其是局部量定义时候就初始化。其实,回到规则本身,这个并不是一个强制的要求,规则的要求其实更加灵活,只需要在使用之前进行正确的初始化即可。

对于链接信息中可能出现的类似应用,在我之前的工程实践中似乎没有遇到过。用过的可能有一定的相符度的似乎一些存储信息的获取,现在回想看倒是全都进行了初始化。至少,读取之前全都进行了相关的写入。

1203_MISRA_C规范学习笔记_Rule 9.1相关推荐

  1. 1209_MISRA_C规范学习笔记_Rule 10.6

    全部学习汇总: https://github.com/GreyZhang/misra_c_hacking 对于所有的无符号类型的常量数字都用一个后缀U来进行标识. 这里面有几个可能导致误区的知识点: ...

  2. 979_MISRA C规范学习笔记3

    MISRA C规范学习笔记3 Grey 全部学习汇总: https://github.com/GreyZhang/misra_c_hacking MISRA C规范学习笔记3 文档学习 实际的实施中, ...

  3. 蓝牙篇之蓝牙核心规范学习笔记(V5.3)汇总

    蓝牙核心规范5.3版,一共3085页,博主以思维导图的方式,记录博主学习蓝牙规范,想要一起学习的小伙伴,可以一起学习. 特别声明:想要啃3000多页英文规范,可以直接忽略本专栏. 关注左侧公众号,回复 ...

  4. 阿里java开发规范学习笔记 (V1.5华山版)

    学习总结 本次开发编码规范手册的变更,相比上一版本存在较多的变化. 主要集中在,对于其中的原理有了更深层次的追踪和了解: 1. 集合元素章节对于集合元素的处理上容易出现问题的地方. 2. 新增敏捷模式 ...

  5. 1211_MISRA_C规范学习笔记_表达式的要求

    全部学习汇总: https://github.com/GreyZhang/misra_c_hacking 12.1, 规则12.1(咨询):在表达式中,应该对C语言的运算符优先级规则有一定的限制. 关 ...

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

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

  7. “华为云企业级Java编程规范”学习笔记

    一."Java基础语句"编程规范 Switch 语句要有defualt分支,除非Swich的条件变量是枚举类型; 多条件分支语句最后应包含一个else分支; 二."类的使 ...

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

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

  9. GB/T 24363-2009 信息安全技术 信息安全应急响应计划规范 学习笔记

    通用内容 每个标准基本都有的格式,供写文档的我们参考 定义和术语: 国家标准当中涉及到的相关专业名称,都会有一个定义,防止出现理解上的歧义 结构层次: 一般有个当前文档的完整结构,可以是图,可以是表, ...

最新文章

  1. 表达式必须是可修改的左值怎么解决_如何解决代码腐败的味道
  2. 不死神兔c语言20月,不死神兔问题(斐波那契数列)
  3. python教程:ConfigParser模块使用教程
  4. 二叉树的四种遍历方式(递归和非递归双重实现)
  5. wxWidgets:wxSocketBase类用法
  6. css固定gridview的表头
  7. jMeter创建微软Azure Lambda Function报错
  8. linux 修改消息队列大小
  9. LeetCode 910. Smallest Range II
  10. 翻译练习:Hadoop概述
  11. ubuntu学习日记--Lesson5:系统目录详解
  12. 一步一步理解拖拽Drag(一)
  13. 翻译:神经网络 为什么要通过减去数据集的图像均值来标准化图像,而不是深度学习中的当前图像均值?
  14. Visual Studio 2015离线版msdn帮助文档下载和安装
  15. 报价单,要这样做才专业
  16. 深度学习笔试、面试题 二
  17. 三取二计算机,三取二是什么意思
  18. Zend Guard加密PHP项目图文分解教程,加密兼容PHP7.x
  19. 虾皮shopee跨境电商靠谱吗
  20. 抓包分析 TCP 握手和挥手

热门文章

  1. 你必须知道的.NET(第2版)
  2. INFOCOM 历年最佳论文汇总Topic推荐-AMiner
  3. SQL超级详细的使用教程
  4. TIB、TEB 信息
  5. TC358870XBG:HDMI转MIPI DSI芯片方案
  6. AlphaGo到底是怎么下棋的?
  7. 六大设计模式原则-迪米特法则
  8. 【博学谷学习记录】超强总结,用心分享|人工智能第五课Python中变量的应用场景及常用方法II
  9. RGB 转 edp 接口dp501 示范电路
  10. hiredis的使用