功能安全实践 | 如何安全使用全局变量

做为一个CBD(code base design基于代码的设计)开发者,如果你维护的程序是以万行为单位来计算,那么你不得不面对一个问题全局变量global variable。在2018版功能安全标准ISO2626-6 Table6 1e中有如下描述(针对ASILB级以上产品):

Avoid global variables or else justify their usage(避免使用全局变量,如果必须使用,请判断并说明)

而 在《The Art of Designing Embedded Systems》一书中作者也写道“If God didn't want us to use global variables, he wouldn't have invented them. Rather than disappoint God, use as many globals as possible假如上帝不希望我们使用全局变量,就不会创造它,如果想让上帝失望,那就尽可能多的使用全局变量.”

为什么大家对全局变量都是如此又爱又恨呢?让我们先看看全局变量会带给我们那些麻烦:

1、全局变量的使用会破坏信息隐藏原则,让你持续违背功能安全标准(ISO2626-6 Table6 1h 中要求No hidden data flow or cnotrol flow没有隐藏的数据流和控制流)如果你的代码足够长、足够复杂的话,最后真的只有天知道什么地方会更改全局变量。

2、全局变量会导致模块之间的强耦合。很不幸,说到这一条,全局变量将再一次违背功能安全标准,( ISO2626-6 Table3 1e 要求 Loose coupling between software components软件组件之间要低耦合 ),设计再好的架构在全局变量面前都像是一坨面条&#x

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值