有時(shí)希望函數(shù)中局部變量的值在函數(shù)調(diào)用結(jié)束后不消失而保留原值.即占用的存儲(chǔ)單元一直不釋放,保留到下次調(diào)用該函數(shù),這時(shí)就應(yīng)該指定局部變量為“靜態(tài)局部變量",用關(guān)鍵字staric進(jìn)行聲明。在嵌入式系統(tǒng)編程時(shí),常常會(huì)用到靜態(tài)變量。一般為了保證數(shù)據(jù)空間在整個(gè)程序運(yùn)行過(guò)程中不被釋放而一直保持,全局變量中的計(jì)數(shù)器等多用靜態(tài)變量。例如,利用狀態(tài)機(jī)機(jī)制編寫(xiě)鍵盤(pán)接口程序,其中的狀態(tài)變量要用靜態(tài)變量,以記錄每次中斷時(shí)鍵盤(pán)按鍵的前一個(gè)狀態(tài),從而判斷當(dāng)前功能;因?yàn)樵摖顟B(tài)信息不能丟失,因此,采用static型的變量較為合適。
statiC state kevboard:
對(duì)靜態(tài)變量的說(shuō)明:
①靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類(lèi)別,在整個(gè)程序運(yùn)行期間都不釋放。
②靜態(tài)局部變量在編譯時(shí)賦初值,即只賦初值一次。
③如果在定義局部變量時(shí)不賦初值,則對(duì)靜態(tài)局部變量來(lái)說(shuō),ICCAVR編譯時(shí)自動(dòng)賦初值o(對(duì)數(shù)值型變量)或空字符(對(duì)字符變量)。
|