C語言register變量和extern及static等知識總結
一、register變量
關鍵字regiter請求編譯器盡可能的將變量存在CPU的寄存器中。有以下幾點注意的地方。
register變量必須是能被CPU寄存器所接受的類型,這通常意味著register變量必須是一個單個的值,并且其長度應小于或等于整型的長度。但是,有些機器的寄存器也能存放浮點數。
register變量可能不存放在內存中,所以不能用取址符運算符“ & ”。
只有局部變量和形參可以作為register變量,全局變量不行。
靜態(tài)變量不能定義為register。
二、static
修飾變量(局部和全局變量)
靜態(tài)全局變量:
在全局數據區(qū)分配內存;未經初始化的靜態(tài)全局變量會被程序自動初始化為0(自動變量的值是隨機的,除非它被顯式初始化)作用域僅限于變量被定義的文件中。
全局變量和全局靜態(tài)變量的區(qū)別:
(1)全局變量是不顯式用static修飾的全局變量,但全局變量 默認是靜態(tài)的,作用域是整個工程,在一個文件內定義的全局變量,在另一個文件中, 通過extern 全局變量名的聲明,就可以使用全局變量。
(2)全局靜態(tài)變量是顯式用static修飾的全局變量,作用域是所在的文件,其他的文件即使用extern聲明也不能使用。
靜態(tài)局部變量
靜態(tài)函數
在函數的返回類型前加上static關鍵字,函數即被定義為靜態(tài)函數。靜態(tài)函數與普通函數不同,它只能在聲明它的文件當中可見,不能被其它文件使用。其它文件中可以定義相同名字的函數,不會發(fā)生沖突。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
C語言register變量和extern及static等知識總結下載
相關電子資料下載
- 基于STM32F429芯片的單片機芯片內存映射圖 154
- C語言編寫程序執(zhí)行效率高的原因是什么? 31
- FPGA協(xié)處理的優(yōu)勢有哪些?如何去使用FPGA協(xié)處理? 887
- 辛苦整理的C語言筆記,一學就會 56
- 帶參數宏定義易出現(xiàn)的隱藏bug和定義方式歸納 57
- ARM9中斷中(C語言)如何實現(xiàn)復位功能,而不是返回中斷前的狀態(tài)? 131
- C語言之GNU C擴展語法應用 27
- C語言中位、字節(jié)和字的定義 整數類型與浮點數類型的比較 70
- PLC指針類型與間接尋址如何使用 26
- C語言開發(fā)如何將錯誤扼殺在編譯階段 85