C語言變量的定義與使用

變量的存儲類別決定了變量中的數據在計算機內存中的存儲位置。C語言中局部變量存放在動態存儲區,全局變量或者靜態變量存放在靜態存儲區。下面是關於C語言變量的定義與使用,歡迎參考!

C語言變量的定義與使用

如果要爲單片機控制系統編寫出高質量的C語言程序,合理的定義並使用變量是非常重要的。程序是用來處理數據的,而變量就是用來存儲數據的。每定義一個變量,編譯器就會在系統的RAM中分配一個物理存儲區域。在單片機控制系統中,RAM資源是非常有限的,作爲單片機程序員,絕對不能隨意的定義變量,需要精打細算合理定義。爲了實現這個目標,必須要對變量的多個特性有深刻的認識。

變量特性:

第一、變量定義要選擇恰到好處的類型,變量的類型直接決定了它所存儲的數據取值範圍,這類似於我們生活中使用的各種容器,選擇合適的變量類型,不但能保證數據存儲安全,還能有效的節約系統資源;

第二、變量的作用範圍必須清楚,C語言最基本的功能單元是函數,在函數內部使用的變量是私有變量,只能在函數內部使用。多個函數組成一個程序的功能模塊,並安置在某一個C文件中,在這些函數的頭部定義的變量是靜態變量(局部變量),這種類型的變量模塊內部的函數都可以訪問。如果在模塊內部聲明變量,並在該模塊的頭文件中導出,該類型變量就是全局變量,全局變量在整個工程中的所有函數都可以訪問;

第三、變量佔用的資源,私有變量是可以釋放的,靜態變量與全局變量是不可以釋放的。也就是說在程序運行的整個過程中,私有變量佔用資源可以供不同的函數重複利用,而靜態變量與全局變量是完全被佔用不能重複利用的;

第四、變量可以存放常數,但因爲單片機RAM資源有限,強烈建議不要用變量存放常量,而是在資源相對豐富的FlashROM中存放常量;

第五、局部變量與全局變量對於函數來說,訪問非常方便,但缺點顯而易見:訪問的函數越多,數據的安全性越低,一旦出現數據異常,很難排除問題。所以,請儘量減少局部變量與全局變量的使用;

第六、函數的型參個數儘量減少,這樣型參只會佔用通用寄存器組來完成參數傳遞工作。如果參數過多,編譯器可能會被迫分配佔用RAM資源,這樣不但參數傳遞效率變低,同時還會導致RAM資源浪費;

明確上述變量定義與使用特點後,在編寫程序的時候,一定要利用好這些特性並結合程序的特點,靈活的使用各種類型、各種作用範圍的變量,使程序在最大限度上得到優化,使系統性能提升至最優的狀態,纔是我們嵌入式開發者的終極目標!