- 相關推薦
C語言變量的定義與使用
變量的存儲類別決定了變量中的數據在計算機內存中的存儲位置。C語言中局部變量存放在動態(tài)存儲區(qū),全局變量或者靜態(tài)變量存放在靜態(tài)存儲區(qū)。下面是關于C語言變量的定義與使用,歡迎參考!
如果要為單片機控制系統編寫出高質量的C語言程序,合理的定義并使用變量是非常重要的。程序是用來處理數據的,而變量就是用來存儲數據的。每定義一個變量,編譯器就會在系統的RAM中分配一個物理存儲區(qū)域。在單片機控制系統中,RAM資源是非常有限的,作為單片機程序員,絕對不能隨意的定義變量,需要精打細算合理定義。為了實現這個目標,必須要對變量的多個特性有深刻的認識。
變量特性:
第一、變量定義要選擇恰到好處的類型,變量的類型直接決定了它所存儲的數據取值范圍,這類似于我們生活中使用的各種容器,選擇合適的變量類型,不但能保證數據存儲安全,還能有效的節(jié)約系統資源;
第二、變量的作用范圍必須清楚,C語言最基本的功能單元是函數,在函數內部使用的變量是私有變量,只能在函數內部使用。多個函數組成一個程序的功能模塊,并安置在某一個C文件中,在這些函數的頭部定義的變量是靜態(tài)變量(局部變量),這種類型的變量模塊內部的函數都可以訪問。如果在模塊內部聲明變量,并在該模塊的頭文件中導出,該類型變量就是全局變量,全局變量在整個工程中的所有函數都可以訪問;
第三、變量占用的RAM資源,私有變量是可以釋放的,靜態(tài)變量與全局變量是不可以釋放的。也就是說在程序運行的整個過程中,私有變量占用資源可以供不同的函數重復利用,而靜態(tài)變量與全局變量是完全被占用不能重復利用的;
第四、變量可以存放常數,但因為單片機RAM資源有限,強烈建議不要用變量存放常量,而是在資源相對豐富的FlashROM中存放常量;
第五、局部變量與全局變量對于函數來說,訪問非常方便,但缺點顯而易見:訪問的函數越多,數據的安全性越低,一旦出現數據異常,很難排除問題。所以,請盡量減少局部變量與全局變量的使用;
第六、函數的型參個數盡量減少,這樣型參只會占用通用寄存器組來完成參數傳遞工作。如果參數過多,編譯器可能會被迫分配占用RAM資源,這樣不但參數傳遞效率變低,同時還會導致RAM資源浪費;
明確上述變量定義與使用特點后,在編寫程序的時候,一定要利用好這些特性并結合程序的特點,靈活的使用各種類型、各種作用范圍的變量,使程序在最大限度上得到優(yōu)化,使系統性能提升至最優(yōu)的狀態(tài),才是我們嵌入式開發(fā)者的終極目標!
拓展:C語言入門學習
什么人需要學習C語言?
從51JOB的統計數據來看,選擇C語言人才的企業(yè)多數以電子工程師、嵌入式工程師、硬件工程師、IOS工程師等為主,學歷本科以上相關專業(yè),三年以上工作經驗,且外語水平要求至少四級以上。既然C語言學習者的就業(yè)門檻那么高,為什么還有很多人執(zhí)著的去學習C語言呢?總結而言,無外乎以下幾點原由:
1)C語言不是面向對象語言。
因為這一點,任何學習C語言的人必須學會用函數思考問題。當你真正的去學習一門面向對象語言時,就會有C語言的函數學習基礎去對比。這會使學習面向對象編程更容易理解和更有樂趣。
2)用C編程就像進行智力體操。
你要顧及到每一件事情,而這在很多其他語言中他會為你處理。你要管理指針,內存分配,和內存回收。你要明白如何處理串,還有動態(tài)數據。在其他語言中,所有這些對你來說是隱藏的。你不知道他們如何運行,更不用說改變他們的運行方式了。你得到了使用的便利,失卻了對程序的控制和速度。很多情況下,這是筆值得的買賣。其他的情況下就不是這樣了。
3)不同情況下你會使用不同的編程語言。
某些情況下要求使用Lisp,其他的要Java,還有別的要C++。但是C是你堅實的基礎。你可能不會使用它做一些項目,但是它會幫助提高你的能力,熟練的用其他語言編程。
4)除了匯編語言之外,C代碼生成的程序比其他任何語言生成的程序來得更小和運行更快。
那么為什么不學匯編語言呢?匯編是一門學了很有用的語言,但是它沒有C那樣的可移植性,并且其他流行的語言比如JAVA的語法是基于C的,而不是匯編。你仍然應該學匯編,但它并不會證明它會像學C那樣有用。
5)如果你想要寫一個視頻游戲引擎或操作系統,你會需要C。
你不能使用C#, Java, 或 Basic來完成這些編程任務。
C語言的發(fā)展史:
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統軟件,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發(fā)。
我適合學習C語言嗎?
首先我們要認清一個事實:C語言工作者只是眾多從事軟件開發(fā)者中的一小部分,在深圳這樣一個IT企業(yè)云集的大城市,使用其它語言從事軟件開發(fā)的工作者多如牛毛,薪資待遇不比從事C語言開發(fā)的人低,當編程愛好者在選擇第一個編程語言時,C語言不一定是首先。我適合學習C語言嗎?解決這個問題,先回答以下幾個問題:
1)你學習C語言的目的是什么?如果是想從事這方面的工作,那么請義無反顧的堅持下去,推薦你在《微機原理》、《計算機組成原理》和《計算機系統結構》三本書中選一本配合《C語言程序設計》來看,這樣可以融匯貫通,讓你對編程有更深入更系統化的理解。而這種理解對計算機類學科的學習來說很重要。
2)您具備學習C語言的條件嗎?由于入職C語言編程的企業(yè)對入職者的要求比較高,在沒有編程工作經驗前提下多數想通過自學進入類似企業(yè)的人幾乎為零,包括很多計算機專業(yè)畢業(yè)的大、中專畢業(yè)生在校期間都會學到C語言,畢業(yè)出來后依然云里霧里。C語言的開發(fā),需要在實際工作中才能快速掌握。同時,英語(從事C語言開發(fā)需要經常查閱英文資料,尤其是單片機領域)、學歷、數學算法、極強的邏輯思維能力等等也是讓多數人望而卻步的門檻。
【C語言變量的定義與使用】相關文章:
C語言變量定義07-29
C語言變量的使用10-12
c語言數組指針變量的說明和使用07-26
C語言變量理解07-28
C語言變量的類型10-30
C語言變量的地址06-08
簡單講解C語言中宏的定義與使用07-30
c語言中使用環(huán)境變量的技巧07-13
c語言使用字符串指針變量與的區(qū)別09-21