2010-06-20 57 views
2

我有一个项目,我需要引用另一个CPP文件中声明的变量,这有可能吗?跨文件的C++参考变量

如果是这样,怎么样?

+2

有可能使用'extern'关键字,如答案中所述,但也许你可以提供你为什么需要它。不鼓励全局变量,所以可能存在更好的解决方案。 – KillianDS 2010-06-20 18:34:27

+0

是的,在很多情况下,全局变量比坏的好处更多...比如想知道这个变量在几个星期后读到它的时候到底从哪里来的 – LukeN 2010-06-20 18:41:59

回答

7

如果将其声明为全局(顶级,高于任何函数定义)并使用“extern”,则可能会发生这种情况:在其他文件中让编译器知道它。

// Main.cpp 
#include <...> 

int myNum; 

int main(int argc, char** argv) 
{ 
    // MAGIC BE HERE 
    return 0; 
} 

// Second.cpp 
#include <...> 

extern int myNum; 

int f() 
{ 
    return myNum * 2; 
} 

extern防止当一个变量在另一个文件被分配再次分配存储器编译器。

2

创建一个.h文件,声明您需要的变量为extern(类似extern int X;),然后将其包含在任何需要该变量的文件中。在你连接的.cpp文件之一中,声明它没有extern

+0

不是相反吗? – LukeN 2010-06-20 18:34:31

+1

@LukeN:不,它不是。 – 2010-06-20 18:36:43

+0

哎呦,看完之后再看清东西,对不起! – LukeN 2010-06-20 18:39:06