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

How to access a static linkage variable in other files in C++?

本文关键字:静态 链接 变量 文件 访问 c++ 其他      更新时间:2023-10-16

在c++中,我被告知静态链接全局变量是在程序开始时创建的,并在程序结束时销毁。如果变量在程序结束时被销毁(不是文件),我认为肯定有一种方法可以在其他文件中使用它。

static有多重含义。

在文件作用域中用static声明的变量仅对该文件中的函数可见。不能在中使用一个文件中定义的static变量。

听起来你想要一个普通的全局变量。把static去掉。

在函数作用域中声明的"局部"变量具有默认的"自动"生存期——它们的值只在函数执行期间存在,一旦函数返回,该值就消失了。您可以将其更改为与static程序一样长。

如果变量是在header中定义的,只需包含header并使用它。如果它是在编译模块(即.cpp文件)中全局声明的,那么声明它的外部版本并使用它。注意,这个不是静态的,它意味着内部链接,将变量的作用域显式地减少到单个编译单元。这是全局/外部链接。

module1.cpp

int globalX = 5;

module2.h

extern int globalX;

module2.cpp

std::cout << globalX;

我已经有一段时间没有做过很多c++了,但我相信这应该可以工作。