静态变量
C++ - Static Variable
在我的c++ dll应用程序中,我想定义一个变量字节,它的值将在dll初始化中以随机值初始化,然后它将在dll活动期间保持相同的值。
- 这个变量的定义是什么?
- 我应该在哪里初始化它的代码(哪里是库的初始化)
谢谢。
-
和普通全局变量的定义是一样的
-
in dllmain: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682583(v=vs.85).aspx
顺便说一句,我建议你使用一个函数返回它的静态变量,而不是一个全局变量。
-
静态类成员(可从任何地方访问)或文件作用域静态或匿名命名空间成员(仅可从该编译单元访问)。
- 静态类成员:
. h
:
. cppclass Foo { //... static char random_byte; //... };
:
char Foo::random_byte = init_random_byte();
-
File-scoped静态:
static char random_byte = init_random_byte();
-
匿名命名空间成员:
namespace { //... char random_byte = init_random_byte(); //... }
在c++中,初始化器可以是任意表达式,并且运行时将确保在main()
函数之前运行它;在加载共享库的情况下。请记住,这些初始化表达式是按照编译单元(单个.cpp)内出现的顺序调用的,但是来自不同编译单元的初始化将以随机顺序运行,因此请确保它们不相互依赖。
相关文章:
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 模板基类中的静态变量
- 类和静态变量
- 不同作用域中的静态变量和全局变量
- 静态变量声明和定义
- 是否可以依赖函数范围的静态变量来执行程序关闭期间调用的方法?
- 在类中继承静态变量?
- "local scope"中的 C++ 初始化静态变量
- 使用静态变量的递归调用的不同输出
- 静态 constexpr 类成员变量对多线程读取是否安全?
- C++:是否可以使用非静态成员变量模板?
- 复制文件流C++静态变量
- 如何在复杂继承中访问静态成员变量
- 为什么静态数组成员变量在调用对象的实例后不显示任何内容?
- 跨模板化函数编译的静态变量
- constexpr函数中的静态constexpr变量
- 静态成员变量不会由 gettext 转换
- 从 exe 和 dll 访问静态库中的 extern 变量
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 用于定义公共变量静态常量整数的C++标准