外部變數作用域為整個檔案,可以在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 提供了兩種變數宣告...