一个静态全局变量初始化引发的讨论
背景
最近在提交的一个补丁,引发了一个静态全局变量初始化的讨论, 主要还是理论基础不够扎实,特此记录
具体的情况是这样的:
在一个补丁中,我定义了一个静态的全局变量,来存储启动参数传过来的值。
开始补丁中的这部分是这样的:
static bool alc269_restore_verbs = false;
但使用补丁检查工具检查时,报如下的错误:
./scripts/checkpatch.pl 0001-xxx.patch
ERROR: do not initialise statics to false
后面就在提交补丁的时候,把这个初值去掉了,然后在群里引起了一阵讨论。
通过网上查了查,和大家的讨论, 去掉初值主要是基于以下原因:
静态全局变量会默认初始化为0,如果初值为0就没必要进行初始化,是多此一举。
作者: Shell