儲存類用於定義C++程式中變數和/或函式的生命週期和可見性。
壽命是指變數保持活動的時間段,可見性是指可存取變數的程式的模組。
有五種型別的儲存類,可以在C++程式中使用
儲存類 | 關鍵字 | 生命週期 | 可見性 | 初始值 |
---|---|---|---|---|
自動 | auto | 函式塊 | 區域性 | 垃圾 |
暫存器 | register | 函式塊 | 區域性 | 垃圾 |
可變 | mutable | 類 | 區域性 | 垃圾 |
靜態 | static | 整個程式 | 全域性 | 零 |
外部 | extern | 整個程式 | 區域性 | 零 |
它是所有區域性變數的預設儲存類。 auto
關鍵字自動應用於所有區域性變數。
{
auto int y;
float y = 3.45;
}
上面的例子定義了兩個具有相同儲存類的變數,auto
只能在函式中使用。
暫存器變數在暫存器中分配儲存器而不是RAM
。 其大小與暫存器大小相同。 它比其他變數具有更快的存取速度。
建議僅使用暫存器變數進行快速存取,例如:在計數器中。
注意:我們不能得到暫存器變數的地址。
register int counter=0;
靜態變數只初始化一次,直到程式結束。 它保留可在多個函式之間呼叫的值。
靜態變數由編譯器提供的一個預設值:0
。
#include <iostream>
using namespace std;
void func() {
static int i=0; //static variable
int j=0; //local variable
i++;
j++;
cout<<"i=" << i<<" and j=" <<j<<endl;
}
int main()
{
func();
func();
func();
}
執行上面程式碼,得到以下結果 -
i= 1 and j= 1
i= 2 and j= 1
i= 3 and j= 1
extern
變數對所有程式都可見。 如果兩個或多個檔案共用相同的變數或函式,則使用它。
extern int counter=0;