靜態持續性 外部儲存性

2021-08-07 05:07:46 字數 1170 閱讀 8628

外部變數作用域為整個檔案,可以在main()前或者標頭檔案中進行宣告。

一方面,若要使用外部變數必須在使用它的所有檔案中進行宣告,另一方面,c++中限制了變數的定義只能進行一次,即單定義規則。所以,若要在多個檔案中使用同乙個外部變數,必須進行以下宣告:

extern int i=7;  //定義外部變數i

int j=8; //定義外部變數j,extern可以省略

main()

extern int i  ;  // 在file2.cpp中,引用file1.cpp中定義的外部變數 i  ;

extern int j ; // 在file2.cpp中,引用file1.cpp中定義的外部變數 j ;

...

file1.cpp定義外部變數i,j,使得編譯器為他們分配記憶體空間。但是 在file2.cpp中,用extern指示了程式使用另乙個檔案(file1.cpp)中定義的的變數i,j,程式並不為它們再分配記憶體空間。

程式中定義了全域性變數warming,並且演示了如何宣告、使用它們,另外定義了同名的自動變數。

#include 

using

namespace

std;

extern

double warming=0.1;//定義外部變數

void update(double dt);

void local();

int main()

#include 

using

namespace

std;

extern

double warming;//引用定義的外部變數warming;

void update(double dt);

void local();

void update(double dt)

void local()

輸出結果:

注意:c++提供了作用域解析運算子(::),放在變數名之前,該運算子表示使用變數的全域性版本。

EasyC 自動儲存持續性

微信 coder梁 id coder lt 自動儲存持續性 這個概念乍一看有些拗口,其實它很簡單,指的是在函式定義中宣告的變數的儲存持續性是自動的 它們在程式開始執行其所屬的函式或 塊時被建立,在執行完函式或 塊時,它們使用的記憶體被釋放。在預設情況下,我們在函式中宣告的變數和函式的引數都是自動儲存...

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

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

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

靜態持續變數3種鏈結性 外部鏈結性 可在其他檔案中訪問 內部鏈結性 只能在當前檔案中訪問 無鏈結性 只能在當前函式或 中訪問 要想建立鏈結性為外部或內部的靜態持續變數,必須在 塊外面宣告它,要建立沒有鏈結性的靜態持續變數,必須在 塊內宣告它。1.單定義規則 變數只能有一次定義,c 提供了兩種變數宣告...