如何在C ++中访问其他文件中的静态链接变量?

时间:2015-07-22 10:33:08

标签: c++ global-variables c++14 static-variables linkage

在C ++中,我被教导过程序启动时会创建一个静态链接全局变量,并在程序结束时销毁。如果变量在程序结束时被破坏(不是文件),我认为肯定有一种方法可以在其他文件中使用它。我想知道如何。

2 个答案:

答案 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 ++已经有一段时间了,但我相信这应该有用。