全部学习汇总: https://github.com/GreyZhang/misra_c_hacking
这一次,看两条规则。
具有内部链接的对象和函数的定义和声明中应使用静态存储类说明符。
这一条其实是跟前面看过的几条规则是有一定关系的,比较好的实践方式就是要保证这样的编码习惯:1,如非必须尽量不要定义可以全局访问的变量、常量以及函数; 2,尽量缩小各种变量、常量或者函数的作用域。
关于上面两条习惯的保持,在实践中有很多内容是跟static的使用方法有一定的相关度的。
这一条是针对数组的定义以及声明的。数组的定义可以采用指明数组元素个数的方式定义和声明,也可以在定义的时候不指定数组大小但是显式进行数组元素的定义,这样可以由编译器推导出数组的具体大小。很多时候,通过一个指针声明或者一个与原来的数据类型不相同的数据类型声明的数组都可以访问实际数组的元素。这是C语言中一些比较有技巧的处理方式,但是很多时候这也是问题产生的根源点。