當前位置:才華齋>計算機>C語言>

C語言使用者識別符號的作用域和儲存類

C語言 閱讀(1.53W)

引導語;使用者識別符號是指使用者根據需要自己定義的識別符號。以下是本站小編分享給大家的C語言使用者識別符號的作用域和儲存類,歡迎參考學習!

C語言使用者識別符號的作用域和儲存類

  1.1 區域性變數和全域性變數

在函式內部或複合語句內部定義的變數稱為區域性變數。函式的.形參屬於區域性變數。在函式外部定義的變數稱為全域性變數。有時,區域性變數也稱為內部變數,全域性變數也稱為外部變數。

1.2 變數的儲存屬性(自動、靜態、暫存器、外部),變數的作用域和生存

C語言中來說明變數儲存屬性的關鍵字有四個:auto(自動)、static(靜態)、register(暫存器)、extern(外部)。

  1.區域性變數的儲存屬性

區域性變數可以是自動類別(用auto,register說明),也可以是靜態類別(用static說明)。形參只能是自動儲存類別,不允許是static類別。

當局部變數未指明類別時,被自動說明成自動(auto)變數。這類區域性變數稱為自動變數。其值存放在記憶體的動態儲存區,因此在退出作用域後,變數被自動釋放,其值不予保留。

當局部變數說明成暫存器(register)型別時,與自動(auto)變數一樣屬於自動類別,所不同的是此時變數的值保留在CPU中的暫存器中。

當變數說明成static(靜態)型別時,稱這樣的變數為靜態區域性變數。在程式執行期間,它佔據一個永久的儲存單元,在函式退出後,變數的值仍舊保留。

  2.全域性變數的儲存屬性

全域性變數都屬於靜態儲存類別,可以用extern和static對它們進行說明。

當一個檔案中要引用另一檔案中的全域性變數或在全域性變數定義前要引用它時,可用extern說明。相當於擴大全域性變數的作用域。

用static(靜態)說明的全域性變數稱為靜態全域性變數,它僅能由本檔案引用,即使在其檔案中用extern說明也不能使用,它相當於限制了全域性變數作用域的擴充套件。

  1.3 內部函式和外部函式

1.在C語言中,所有的函式在本質上都是外部函式。

2.函式定義時用extern進行說明稱為外部函式。函式的隱含類別為外部函式,外部函式可以被其他檔案呼叫。

3.定義函式時用static進行說明稱為靜態函式,也稱內部函式。靜態函式也是外部函式,只是它僅侷限於它所在的檔案,其他檔案不能呼叫。