1201_MISRA_C规范学习笔记_Rule 8.10

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

    所有在文件范围内的对象或函数的声明和定义都应具有内部链接,除非需要外部链接。

    如果一个变量只能被同一个文件中的函数使用,那么使用static。类似地,如果一个函数仅从同一文件的其他地方调用,则使用static。使用静态存储类说明符将确保标识符只在声明它的文件中可见,并避免与另一个文件或库中的相同标识符混淆。

    其实,这个就是一个static的使用应用要求。我见过很多人的代码直接把这个define为一个PRIVATE,其实是非常形象的。私有的信息,尽量不要开放成PUBLIC。这一条规则的要求其实就可以这么概括一下。

    顺带着,针对static的常用方法做一个简单的梳理:

    1. 用于全局量,这样全局量只能够在当前的文件内使用;

    2. 用于函数,这样这个函数只能够在当前文件的范围内使用;

    3. 用于局部量,这个比较特殊,因为局部量本来就是在局部范围内用的。而这里增加一个static,在一定程度上把它变成了一个具有全局属性的量。在link阶段,这个变量会被分配具体的地址。由于不像局部量一样用的时候申请存储,用完消失,这样的局部量会一直存在,反复修改的时候会保持上一次的数值。

    这一条的学习时间点比较有意思,在看到这一条规则之前,就在当天工作之中我还给一个经验不多的工程师做了这一条规则的讲解,告知这是一个好习惯。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值