功能声明范围

时间:2011-09-24 08:05:17

标签: c++ coding-style

大多数人似乎在代码块之外声明了使用它们的函数:

void doSomething();

void doStuff()
{
    doSomething();
}

我想知道这样做是否是一个好习惯:

void doStuff()
{
    void doSomething();

    doSomething();
}

第二种方法的范围较小,通常被认为是好的风格,但为什么几乎没有人使用它?有一些缺点吗?

2 个答案:

答案 0 :(得分:1)

由于函数必须在封闭的命名空间范围内定义,因此将声明限制在函数范围内似乎没有很大的优势。

传统上,在头文件中使用单个声明更容易维护,因为如果函数定义需要更改,则只需要调整单个声明而不是在使用该函数的每个其他函数中的声明。

答案 1 :(得分:1)

如果doSomething()仅用于此c文件,则应将其声明为static。

static void doSomething();

在文件的开头声明所有静态函数原型而不是在示例中的代码行中间,这是一个很好的实践。

这样,如果有人正在查看您的代码并查看所有静态函数原型,他可以快速了解发生的事情。