C++头文件和变量范围

MrD*_*ase 2 c++

我想用以下方式组织我的c ++变量和函数:头文件"stuff.h"中的函数原型,"stuff.cpp"中的函数实现,然后在main.cpp中说#include"stuff.h"(所以我可以调用stuff.cpp中实现的函数.到现在为止还挺好.现在我想在stuff.cpp中声明一些具有全局作用域的变量(所以我可以修改stuff.cpp main.cpp中实现的函数中的变量).这似乎不起作用.我怎样才能做到这一点?

i_a*_*orf 8

将它们声明为extern.例如,在stuff.h中:

extern int g_number;
Run Code Online (Sandbox Code Playgroud)

然后在stuff.cc中:

int g_number = 123;
Run Code Online (Sandbox Code Playgroud)

然后在main.cc中#include stuff.h.

  • 如果您要清理代码,则很有必要。在每个.cpp中重复声明很容易导致不一致。当您在标头中将其声明为extern时,请确保每个人都将其用作同一类型。如果.h中的extern声明与stuff.cc中的定义不匹配,则编译器也将避免。 (2认同)