Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 函数声明范围_C++_Coding Style - Fatal编程技术网

C++ 函数声明范围

C++ 函数声明范围,c++,coding-style,C++,Coding Style,大多数人似乎在使用它们的代码块之外声明函数,如下所示: void doSomething(); void doStuff() { doSomething(); } void doStuff() { void doSomething(); doSomething(); } 我想知道这样做是否被认为是一个好习惯: void doSomething(); void doStuff() { doSomething(); } void doStuff() {

大多数人似乎在使用它们的代码块之外声明函数,如下所示:

void doSomething();

void doStuff()
{
    doSomething();
}
void doStuff()
{
    void doSomething();

    doSomething();
}
我想知道这样做是否被认为是一个好习惯:

void doSomething();

void doStuff()
{
    doSomething();
}
void doStuff()
{
    void doSomething();

    doSomething();
}

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

由于函数必须在封闭的命名空间范围内定义,因此将声明限制在函数范围内似乎没有什么好处

通常,在头文件中有一个声明更容易维护,因为如果函数定义需要更改,则只需调整一个声明,而不需要在使用该函数的其他函数中进行声明。

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

static void doSomething();

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

这样,如果有人正在浏览您的代码,并且看到了所有静态函数协议,那么他可以快速了解发生了什么