全局variables在多个文件中

我有两个需要访问一个公共variables的源文件。 做这个的最好方式是什么? 例如:

source1.cpp:

int global; int function(); int main() { global=42; function(); return 0; } 

source2.cpp:

 int function() { if(global==42) return 42; return 0; } 

variablesglobal的声明应该是静态的,extern,还是应该放在两个文件包含的头文件中?

全局variables应该在两个源文件包含的头文件中声明为extern ,然后只在其中一个源文件中定义:

COMMON.H

 extern int global; 

source1.cpp

 #include "common.h" int global; int function(); int main() { global=42; function(); return 0; } 

source2.cpp

 #include "common.h" int function() { if(global==42) return 42; return 0; } 

你添加一个“头文件”,描述模块source1.cpp的接口:

source1.h

 #ifndef SOURCE1_H_ #define SOURCE1_H_ extern int global; #endif 

source2.h

 #ifndef SOURCE2_H_ #define SOURCE2_H_ int function(); #endif 

并在每个使用此variables的文件中添加一个#include语句,并在variables中定义(重要)。

source1.cpp

 #include "source1.h" #include "source2.h" int global; int main() { global=42; function(); return 0; } 

source2.cpp

 #include "source1.h" #include "source2.h" int function() { if(global==42) return 42; return 0; } 

虽然没有必要,但我build议使用文件名source1.h来显示它描述模块source1.cpp的公共接口。 以同样的方式,source2.h描述了source2.cpp中可用的公共内容。

在一个文件中声明它在source1.cpp中,在第二个声明为

 extern int global; 

当然,你真的不想这样做,也许应该发表一个关于你想要达到什么的问题,这样的人可以给你其他的方式来实现它。