syn*_*tik 1 c++ coding-style header header-files
假设我有以下文件:
进一步假设main.cpp调用routine()
在routine.cpp中定义的函数,但routine.cpp也包含仅由routine()
函数使用的函数.换句话说,routine.cpp包含仅从routine.cpp中调用的函数和从其他源文件调用的函数.
显然main.cpp将包含#include "routine.h"
.但是,routine.h是否包含在routine.cpp(样式A)中定义的所有函数的原型,或者routine.h是否只包含从其他源文件(样式B)调用的函数的原型?
我总是在风格A之后编写代码,但最近我想知道风格B是否更具风格.(如果使用样式B,那么仅在routine.cpp中使用的函数的原型可以位于routine.cpp的顶部,或者定义可以简单地在它们的使用之前.)
通常,标头只包含公共接口的方法(如果它们是自由函数).您可以声明routine.cpp
匿名命名空间中使用的辅助方法.
//routine.h
void foo();
void goo();
//routine.cpp
namespace
{
void fooHelper() {}
void gooHelper() {}
}
void foo()
{
fooHelper();
}
void goo()
{
gooHelper();
}
Run Code Online (Sandbox Code Playgroud)
之前声明了这些函数static
,这给了它们内部的联系,但现在的一般风格是使用匿名命名空间.