1

当我第一次开始编程时,我总是遵循在文件顶部定义全局变量的约定,例如:

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;
}

另一位程序员正在审查这段代码,并说这是他最讨厌的事情之一。是否有充分的理由坚持最高定义的约定?

4

1 回答 1

4

静态变量是编译单元的本地变量。只要在程序中第一次使用之前声明它们,它们的位置就完全没有区别。

尽管将静态声明保留在文件顶部没有纯粹的技术原因,但这是一个相当普遍的约定。我已经看到它在几家公司的编码标准中明确写出。当所有程序员都遵循相同的约定时,代码看起来更加统一,统一是朝着代码可维护性迈出的一大步。当其他人打开您的文件并且代码格式看起来很熟悉时,这是一个很大的优势。因此,如果您团队中的其他同事确实遵循此约定,您也应该遵循它。

于 2012-06-28T21:09:11.603 回答