在C ++中,我被教导过程序启动时会创建一个静态链接全局变量,并在程序结束时销毁。如果变量在程序结束时被破坏(不是文件),我认为肯定有一种方法可以在其他文件中使用它。我想知道如何。
答案 0 :(得分:3)
static
有多种含义。
在文件范围内使用static
声明的变量仅对该文件中的函数可见。您无法使用另一个文件中的一个文件中定义的static
变量。
听起来你想要一个普通的全局变量。请离开static
。
在函数范围声明的“局部”变量具有默认的“自动”生命周期 - 只有在函数执行时它们的值才会持续存在,并且一旦functin返回,该值就会消失。只要程序包含static
。
答案 1 :(得分:2)
如果变量是在标题中定义的,只需包含标题并使用它即可。如果它在编译模块(即.cpp文件)中全局声明,则声明它的extern版本并使用它。注意,这个不是静态的,它意味着内部链接,它明确地将变量的范围缩小到单个编译单元。这是全球/外部联系。
E.g。
module1.cpp
int globalX = 5;
module2.h
extern int globalX;
module2.cpp
std::cout << globalX;
因为我做了很多C ++已经有一段时间了,但我相信这应该有用。