- 相關(guān)推薦
C語言用戶標識符的作用域和存儲類
引導語;用戶標識符是指用戶根據(jù)需要自己定義的標識符。以下是百分網(wǎng)小編分享給大家的C語言用戶標識符的作用域和存儲類,歡迎參考學習!
1.1 局部變量和全局變量
在函數(shù)內(nèi)部或復合語句內(nèi)部定義的變量稱為局部變量。函數(shù)的形參屬于局部變量。在函數(shù)外部定義的變量稱為全局變量。有時,局部變量也稱為內(nèi)部變量,全局變量也稱為外部變量。
1.2 變量的存儲屬性(自動、靜態(tài)、寄存器、外部),變量的作用域和生存期
C語言中來說明變量存儲屬性的關(guān)鍵字有四個:auto(自動)、static(靜態(tài))、register(寄存器)、extern(外部)。
1.局部變量的存儲屬性
局部變量可以是自動類別(用auto,register說明),也可以是靜態(tài)類別(用static說明)。形參只能是自動存儲類別,不允許是static類別。
當局部變量未指明類別時,被自動說明成自動(auto)變量。這類局部變量稱為自動變量。其值存放在內(nèi)存的動態(tài)存儲區(qū),因此在退出作用域后,變量被自動釋放,其值不予保留。
當局部變量說明成寄存器(register)類型時,與自動(auto)變量一樣屬于自動類別,所不同的是此時變量的值保留在CPU中的寄存器中。
當變量說明成static(靜態(tài))類型時,稱這樣的變量為靜態(tài)局部變量。在程序運行期間,它占據(jù)一個永久的存儲單元,在函數(shù)退出后,變量的值仍舊保留。
2.全局變量的存儲屬性
全局變量都屬于靜態(tài)存儲類別,可以用extern和static對它們進行說明。
當一個文件中要引用另一文件中的全局變量或在全局變量定義前要引用它時,可用extern說明。相當于擴大全局變量的作用域。
用static(靜態(tài))說明的全局變量稱為靜態(tài)全局變量,它僅能由本文件引用,即使在其文件中用extern說明也不能使用,它相當于限制了全局變量作用域的擴展。
1.3 內(nèi)部函數(shù)和外部函數(shù)
1.在C語言中,所有的函數(shù)在本質(zhì)上都是外部函數(shù)。
2.函數(shù)定義時用extern進行說明稱為外部函數(shù)。函數(shù)的隱含類別為外部函數(shù),外部函數(shù)可以被其他文件調(diào)用。
3.定義函數(shù)時用static進行說明稱為靜態(tài)函數(shù),也稱內(nèi)部函數(shù)。靜態(tài)函數(shù)也是外部函數(shù),只是它僅局限于它所在的文件,其他文件不能調(diào)用。
【C語言用戶標識符的作用域和存儲類】相關(guān)文章:
C語言位域的使用與注意事項解析07-22
Java語言的作用域有哪些及分類知識08-07
C語言中void有什么作用10-01
淺談c語言和c++和VB的區(qū)別07-04
C語言中的指針和內(nèi)存泄漏08-07
C語言中的BYTE和char字符08-06
C語言項目中.h文件和.c文件的關(guān)系詳解05-08
C++類的轉(zhuǎn)換10-17