C++怎么让一个全局变量在有需要的时候才被定义
时间: 2023-11-27 22:54:11 浏览: 77
在C++中,可以通过将全局变量的定义放在函数内部,使其成为局部静态变量,从而实现在需要时才被定义的效果。例如:
```c++
void func(){
static int global_var = 0;
// 其他代码
}
```
这样,全局变量`global_var`就只会在`func()`函数第一次被调用时被定义,且只有`func()`函数内部可以访问它。当`func()`函数执行完毕后,即使`global_var`的作用域仍然是全局的,但它也不会被销毁,而是一直存在于内存中,等待下一次被调用。
需要注意的是,由于静态局部变量的生命周期与程序的整个运行期间有关,因此在多线程编程中,需要对静态局部变量进行线程安全的访问控制。
阅读全文