当我第一次开始编程时,我总是遵循在文件顶部定义全局变量的惯例,如:
static int a[10];
static int b[10];
void firstFn(void)
{
a[0] = 1;
}
void secondFn(void)
{
b[4] = 2;
}
void thirdFn(void)
{
b[5] = 2;
}
但是最近我正在开展一些工作,我希望将全局变量的定义与一些函数分组,这些函数对文件中进一步定义的变量进行操作:
static int a[10];
void firstFn(void)
{
a[0] = 1;
}
static int b[10];
void secondFn(void)
{
b[4] = 2;
}
void thirdFn(void)
{
b[5] = 2;
}
另一位程序员正在审查这段代码并说这是他的一个小小的烦恼。是否有充分的理由坚持最顶级的惯例?
答案 0 :(得分:4)
静态变量是编译单元的本地变量。他们的位置绝对没有区别,只要他们在首次使用该程序之前被宣布。
虽然没有纯技术理由将静态声明保留在文件的顶部,但这是一个相当广泛的惯例。我已经看到它在几家公司的编码标准中明确写出来了。当所有程序员遵循相同的约定时,代码看起来更加统一,一致性是代码可维护性的重要一步。当其他人打开您的文件并且代码格式看起来很熟悉时,这是一个很好的补充。因此,如果您团队中的其他同事遵循此惯例,您也应该遵循此惯例。