- 相關推薦
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進行說明稱為靜態函數,也稱內部函數。靜態函數也是外部函數,只是它僅局限于它所在的文件,其他文件不能調用。
【C語言用戶標識符的作用域和存儲類】相關文章:
C語言位域的使用與注意事項解析07-22
Java語言的作用域有哪些及分類知識08-07
C語言中void有什么作用10-01
淺談c語言和c++和VB的區別07-04
C語言函數的遞歸和調用08-22
C語言中的指針和內存泄漏08-07
C語言中的BYTE和char字符08-06
C語言項目中.h文件和.c文件的關系詳解05-08
C語言函數的參數和返回值09-14
C++類的轉換10-17