C++ 速查手冊 V1.00 - 單元 13.1 - 存在期

變數有一定的存在期 (storage duration) ,宣告變數如同變數的誕生,而後在程式執行的某一個時間點結束,有三類存在期


  • 自動
  • 靜態
  • 動態

使用以下的關鍵字 (keyword) 宣告


  • auto
  • register
  • static
  • extern
  • thread_local

auto 在 C++11 之前用來宣告自動存在期的變數,由於沒有用 auto 宣告的變數都預設為自動存在期,因此到 C++11 已經改變 auto 的語意。


自動存在期的變數在作用域 (scope) 結束時,跟著變數也會自動終止,像是宣告在函數 (function) 裡的變數就是自動存在期的區域變數 (local variable) ,效力僅限在於函數主體的大括弧中。


register 用來要求編譯器將這個變數放入處理器的暫存器之中,也是屬於自動存在期,已不被建議使用。


宣告 static 的變數屬於靜態存在期,靜態存在期的變數特色是會一直存在,直到程式結束為止。


至於 extern 用於外部連結的變數, thread_local 則是 C++11 新增的關鍵字,用於執行緒 (thread) 的部分。


continue ...

沒有留言: