全域性變數,extern,static

2021-07-03 03:36:25 字數 887 閱讀 9982

宣告函式或全域性變數的作用範圍的關鍵字,其宣告的函式和變數可以在本模組/其他模組中使用。注意:

它是乙個宣告不是定義 !  全域性變數的定義和宣告一般情況下最好分開。

預設情況下

全域性變數只能在定義它的檔案中使用

,但如果在另乙個檔案中將這個變數宣告為外部變數,那麼這個變數的作用域將被擴充套件到另外乙個檔案中。

extern常用方法:

1)在cpp檔案中定義全域性變數(函式外部);

2)在對應的h檔案中,宣告外部變數extern。

在需要用到這個全域性變數的地方,include」**.h」即可

1)可以修飾:區域性變數,全域性變數。

靜態全域性變數:作用域:

在宣告它的整個檔案都是可見的,而在檔案之外是不可見的。

靜態區域性變數:

它始終駐留在全域性資料區,直到程式執行結束。但其作用域

為區域性作用域,當定義它的函式或語句塊結束時,其作用域隨之結束。

2)static變數的定義和宣告是一起的,如果沒有初始化,自動初始化為0;

3)extern和static不能同時修飾乙個變數;

全域性變數和全域性靜態變數的區別

1)全域性變數

:預設是有外部鏈結性的,

作用域是整個工程,在乙個檔案內定義的全域性變數,在另乙個檔案中,通過extern 全域性變數名的宣告,就可以使用全域性變數。

2)全域性

靜態變數

:作用域是宣告此變數所在的檔案,其他的檔案即使用extern宣告也不能使用。

static全域性變數 全域性變數

1 全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...

全域性變數和靜態全域性變數

全域性變數和區域性變數是從變數的作用域的角度劃分。靜態變數和動態變數是從變數的記憶體分配的角度劃分。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同,區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原...

c 全域性變數 靜態全域性變數

全域性變數是靜態儲存方式,靜態全域性變數也是靜態儲存方式,這兩者在儲存方式上並無不同。區別 雖在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,靜態全域性變數在各個原始檔中都是有效的。靜態區域性變數則限制了其作用域,只在定義該變數的原始檔內有效,在同一源程式的其它原始檔中不能...