變數儲存持續性 作用域和鏈結性

2021-09-27 03:07:27 字數 856 閱讀 8620

靜態持續變數3種鏈結性:外部鏈結性(可在其他檔案中訪問)、內部鏈結性(只能在當前檔案中訪問)、無鏈結性(只能在當前函式或**中訪問)。

要想建立鏈結性為外部或內部的靜態持續變數,必須在**塊外面宣告它,要建立沒有鏈結性的靜態持續變數,必須在**塊內宣告它

1.單定義規則

變數只能有一次定義,c++提供了兩種變數宣告,一種是定義宣告(defining declaration)或簡稱為定義(definition),它會給變數分配儲存空間;

另一種是引用宣告(referencing declaration)或簡稱為宣告(declaration),它不給變數分配儲存空間,因為它引用已有的變數。

引用宣告使用關鍵字extern

// file01.cpp

extern int cats = 20;

int dogs = 22;

int fleas;

…extern int cats;

extern int dogs;

…將static 限定符用於作用域為整個檔案的變數時,該變數的鏈結性將為內部的。 鏈結性為內部的變數只能在其所屬的檔案中使用;但常規外部變數都具有外部鏈結性,即可以在其他檔案中使用。

//file01

int errors = 20;

…//file02

int errors = 5;

void froo()

cout <<

"end"

;return0;

}void

strcout

(const

char

* str)

儲存持續性 作用域和鏈結性

關於記憶體的知識 c 使用3種 c 11中是4種 不同的方案來儲存資料,這些方案的區別在於資料保留在記憶體中的時間。1.自動變數和棧 自動變數的數目隨函式的開始和結束而增減,因此程式必須在執行時對自動變數進行管理,常用的方法是留出一段記憶體,將其視為棧,以管理動態變數的增減。2.靜態持續變數 和c語...

C 變數的儲存持續性 作用域和鏈結性

資料摘自 c primer plus 儲存持續性 1自動儲存持續性 在函式定義中宣告的變數 包括函式引數 的儲存持續性為自動的。它們在程式開始執行其所屬的函式或 塊時被建立,在執行完函式或 塊時,它們使用的記憶體被釋放。2靜態儲存持續性 在函式定義外定義的變數和使用關鍵字static定義的變數的儲存...

儲存持續性 作用域和鏈結性之二

除了執行緒儲存持續性,c 使用三種不同的方案來儲存資料,這些方案的區別就在於資料保留在記憶體中的時間。使用c 運算子new 或c函式malloc 分配的記憶體,被成為動態記憶體。動態記憶體由運算子new和delete控制,不是由作用域和鏈結性規則控制。因此,可以在乙個函式中動態分配記憶體,而在另乙個...