关于静态局部变量的澄清
Clarification regarding Static local variables
在链接存储类规范中
在主题下静态本地变量我读过
在块范围内声明的带有指定静态的变量具有静态存储持续时间,但初始化了第一次控制通过其声明(除非其初始化为零或常量性定位化,否则可以在首先输入块之前执行)。
我不明白这是什么意思:
可以在之前先执行首先输入块
plus,可以说 static 本地变量有没有链接?
如有必要,您可以扔一些例子吗?谢谢
相关部分是当启动值已知时。
当已知额外的保证在首次执行该块之前不会更改时。
以下是一些示例的代码。
int foo(void);
void bar(void)
{
static int ZeroInit; // zero init
static int a = 0; // constant init
static int b = 4; // constant init
// values for above inits are known at start of runtime and even earlier
static int c = foo();
// dynamic init, value unknown before execution of foo(),
// which cannot (i.e. is defined not to) be done before executing the block
/* code */
}
相关文章:
- C++中静态方法的局部变量范围
- 获取具有静态局部变量的绑定/推断捕获 lambda 的函数指针
- 静态常量与常量局部变量,哪一个性能更好
- C++:用IIFE线程初始化静态局部变量安全吗
- 分配给静态变量的局部变量;编译错误在'c'但在 C++ 中成功
- 静态局部变量会被错误地优化吗?
- 为什么静态局部变量的 MSVC 线程安全初始化使用 TLS
- C++将局部变量添加到静态向量而不复制
- CppUnit:为什么静态局部变量保持其值
- 静态局部变量没有物理内存
- 静态对const局部变量有所作为
- 使用函数模板中静态局部变量的地址作为类型标识符是否安全
- 通过静态局部变量的参考/指针返回
- 递归计算在不使用静态局部变量,全局变量或静态函数的情况下,在递归函数中发生的环数
- 关于静态局部变量的澄清
- 如果在静态局部变量之前出现异常,会发生什么
- 其中定义函数的静态局部变量对象
- 在某些情况下,如何理解允许实现将非局部变量的动态初始化视为静态初始化
- C++ 中静态局部变量的范围和生存期
- 填充静态unordered_map局部变量