如何在c++中访问其他文件中的静态链接变量
How to access a static linkage variable in other files in C++?
在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++了,但我相信这应该可以工作。
相关文章:
- 基于boost的程序的静态链接——zlib问题
- 使用gcc从静态链接的文件中查找可选符号
- 使用转换器提升 Python 问题 - 静态链接
- C++实用程序::转换在静态链接库中不起作用
- 将源中的 GLEW 与 cmake 静态链接
- 在发布模式下启动使用库的静态链接编译的应用程序时出错
- libavdevice 和 x11 的静态链接库应该以什么顺序链接?
- 静态链接启用 PIC 的库时出现链接器 PIC 错误
- 静态链接库时,收到链接器错误:找不到 -lgcc_s
- 静态链接 glibc & boost_python36 for Python extension
- 我可以在C++中配置静态链接吗?
- 协议缓冲区的静态链接会导致与现有符号冲突
- C++标准是否定义了结构中成员函数的函数内定义是否必须具有静态链接?
- 静态链接 Visual Studio dll 到动态链接的 sfml 项目
- 我可以加载与库静态链接的 dll 吗?
- 静态链接MSVC库,动态链接Qt
- C++:找不到静态链接
- OpenSSL AES仅适用于某些计算机,即使具有静态链接也是如此
- CURL 静态链接未解析的外部符号
- 如何强制Windows.h在Visual Studio中静态链接而不是动态链接?