跳转至内容

C++ 编程

来自维基教科书,开放的书籍,开放的世界
永久存储
[编辑 | 编辑源代码]

使用static修饰符使变量具有静态生命周期,对于全局变量,它们需要内部链接(变量在同一项目中其他文件中代码无法访问)。

静态生命周期
这意味着静态变量需要在文件范围内初始化,在运行时存在并保持更改,直到程序的进程关闭,静态变量的特定销毁顺序是未定义的。

static 变量实例共享相同的内存位置。这意味着它们在函数调用之间保持其值。例如,在以下代码中,函数内部的静态变量用于跟踪该函数被调用的次数

void foo() {
  static int counter = 0;
  cout << "foo has been called " << ++counter << " times\n";
}

int main() {
  for( int i = 0; i < 10; ++i ) foo();
}

华夏公益教科书