| 類別 | 關鍵字 | 儲存區 | 生命週期 | 作用域 | 預設初值 |
|---|---|---|---|---|---|
| 自動變數 | auto (預設) | 堆疊 | 函數執行期間 | 區域 | 不定值 (Debug 0xCC) |
| 靜態變數 | static | 資料區 | 程式全程 | 區域/檔案 | 0 |
| 暫存器變數 | register | CPU 暫存器 (建議) | 函數執行期間 | 區域 | 不定值 |
auto int s=0; s++; 多次呼叫輸出皆為 1。.obj 符號表重命名,如 ?x@?1??func@@YAXXZ@4HA,編碼函數資訊)。程式載入時建立(早於 main),程式結束時銷毀(晚於 main)。
實現模組級/函數級私有狀態(資訊隱藏)。
僅是對編譯器的「建議」,現代編譯器最佳化極佳,手動指定反而可能妨礙最佳化。實務上不建議使用,屬雞肋功能。
static。static。register,但通常無效。