跳轉至內容

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();
}

華夏公益教科書