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