亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語(yǔ)言

C語(yǔ)言變量的定義與使用

時(shí)間:2024-09-05 10:49:44 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

C語(yǔ)言變量的定義與使用

  變量的存儲(chǔ)類別決定了變量中的數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)位置。C語(yǔ)言中局部變量存放在動(dòng)態(tài)存儲(chǔ)區(qū),全局變量或者靜態(tài)變量存放在靜態(tài)存儲(chǔ)區(qū)。下面是關(guān)于C語(yǔ)言變量的定義與使用,歡迎參考!

  如果要為單片機(jī)控制系統(tǒng)編寫出高質(zhì)量的C語(yǔ)言程序,合理的定義并使用變量是非常重要的。程序是用來(lái)處理數(shù)據(jù)的,而變量就是用來(lái)存儲(chǔ)數(shù)據(jù)的。每定義一個(gè)變量,編譯器就會(huì)在系統(tǒng)的RAM中分配一個(gè)物理存儲(chǔ)區(qū)域。在單片機(jī)控制系統(tǒng)中,RAM資源是非常有限的,作為單片機(jī)程序員,絕對(duì)不能隨意的定義變量,需要精打細(xì)算合理定義。為了實(shí)現(xiàn)這個(gè)目標(biāo),必須要對(duì)變量的多個(gè)特性有深刻的認(rèn)識(shí)。

  變量特性:

  第一、變量定義要選擇恰到好處的類型,變量的類型直接決定了它所存儲(chǔ)的數(shù)據(jù)取值范圍,這類似于我們生活中使用的各種容器,選擇合適的變量類型,不但能保證數(shù)據(jù)存儲(chǔ)安全,還能有效的節(jié)約系統(tǒng)資源;

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

  第三、變量占用的RAM資源,私有變量是可以釋放的,靜態(tài)變量與全局變量是不可以釋放的。也就是說(shuō)在程序運(yùn)行的整個(gè)過(guò)程中,私有變量占用資源可以供不同的函數(shù)重復(fù)利用,而靜態(tài)變量與全局變量是完全被占用不能重復(fù)利用的;

  第四、變量可以存放常數(shù),但因?yàn)閱纹瑱C(jī)RAM資源有限,強(qiáng)烈建議不要用變量存放常量,而是在資源相對(duì)豐富的FlashROM中存放常量;

  第五、局部變量與全局變量對(duì)于函數(shù)來(lái)說(shuō),訪問(wèn)非常方便,但缺點(diǎn)顯而易見(jiàn):訪問(wèn)的函數(shù)越多,數(shù)據(jù)的安全性越低,一旦出現(xiàn)數(shù)據(jù)異常,很難排除問(wèn)題。所以,請(qǐng)盡量減少局部變量與全局變量的使用;

  第六、函數(shù)的型參個(gè)數(shù)盡量減少,這樣型參只會(huì)占用通用寄存器組來(lái)完成參數(shù)傳遞工作。如果參數(shù)過(guò)多,編譯器可能會(huì)被迫分配占用RAM資源,這樣不但參數(shù)傳遞效率變低,同時(shí)還會(huì)導(dǎo)致RAM資源浪費(fèi);

  明確上述變量定義與使用特點(diǎn)后,在編寫程序的時(shí)候,一定要利用好這些特性并結(jié)合程序的特點(diǎn),靈活的使用各種類型、各種作用范圍的變量,使程序在最大限度上得到優(yōu)化,使系統(tǒng)性能提升至最優(yōu)的狀態(tài),才是我們嵌入式開(kāi)發(fā)者的終極目標(biāo)!

  拓展:C語(yǔ)言入門學(xué)習(xí)

  什么人需要學(xué)習(xí)C語(yǔ)言?

  從51JOB的統(tǒng)計(jì)數(shù)據(jù)來(lái)看,選擇C語(yǔ)言人才的企業(yè)多數(shù)以電子工程師、嵌入式工程師、硬件工程師、IOS工程師等為主,學(xué)歷本科以上相關(guān)專業(yè),三年以上工作經(jīng)驗(yàn),且外語(yǔ)水平要求至少四級(jí)以上。既然C語(yǔ)言學(xué)習(xí)者的就業(yè)門檻那么高,為什么還有很多人執(zhí)著的去學(xué)習(xí)C語(yǔ)言呢?總結(jié)而言,無(wú)外乎以下幾點(diǎn)原由:

  1)C語(yǔ)言不是面向?qū)ο笳Z(yǔ)言。

  因?yàn)檫@一點(diǎn),任何學(xué)習(xí)C語(yǔ)言的人必須學(xué)會(huì)用函數(shù)思考問(wèn)題。當(dāng)你真正的去學(xué)習(xí)一門面向?qū)ο笳Z(yǔ)言時(shí),就會(huì)有C語(yǔ)言的函數(shù)學(xué)習(xí)基礎(chǔ)去對(duì)比。這會(huì)使學(xué)習(xí)面向?qū)ο缶幊谈菀桌斫夂透袠?lè)趣。

  2)用C編程就像進(jìn)行智力體操。

  你要顧及到每一件事情,而這在很多其他語(yǔ)言中他會(huì)為你處理。你要管理指針,內(nèi)存分配,和內(nèi)存回收。你要明白如何處理串,還有動(dòng)態(tài)數(shù)據(jù)。在其他語(yǔ)言中,所有這些對(duì)你來(lái)說(shuō)是隱藏的。你不知道他們?nèi)绾芜\(yùn)行,更不用說(shuō)改變他們的運(yùn)行方式了。你得到了使用的便利,失卻了對(duì)程序的控制和速度。很多情況下,這是筆值得的買賣。其他的情況下就不是這樣了。

  3)不同情況下你會(huì)使用不同的編程語(yǔ)言。

  某些情況下要求使用Lisp,其他的要Java,還有別的要C++。但是C是你堅(jiān)實(shí)的基礎(chǔ)。你可能不會(huì)使用它做一些項(xiàng)目,但是它會(huì)幫助提高你的能力,熟練的用其他語(yǔ)言編程。

  4)除了匯編語(yǔ)言之外,C代碼生成的程序比其他任何語(yǔ)言生成的程序來(lái)得更小和運(yùn)行更快。

  那么為什么不學(xué)匯編語(yǔ)言呢?匯編是一門學(xué)了很有用的語(yǔ)言,但是它沒(méi)有C那樣的可移植性,并且其他流行的語(yǔ)言比如JAVA的語(yǔ)法是基于C的,而不是匯編。你仍然應(yīng)該學(xué)匯編,但它并不會(huì)證明它會(huì)像學(xué)C那樣有用。

  5)如果你想要寫一個(gè)視頻游戲引擎或操作系統(tǒng),你會(huì)需要C。

  你不能使用C#, Java, 或 Basic來(lái)完成這些編程任務(wù)。

  C語(yǔ)言的發(fā)展史:

  C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它由美國(guó)貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語(yǔ)言已先后被移植到大、中、小及微型機(jī)上,它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開(kāi)發(fā)上,而且各類科研都需要用到C語(yǔ)言,適于編寫系統(tǒng)軟件,三維,二維圖形和動(dòng)畫,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開(kāi)發(fā)。

  我適合學(xué)習(xí)C語(yǔ)言嗎?

  首先我們要認(rèn)清一個(gè)事實(shí):C語(yǔ)言工作者只是眾多從事軟件開(kāi)發(fā)者中的一小部分,在深圳這樣一個(gè)IT企業(yè)云集的大城市,使用其它語(yǔ)言從事軟件開(kāi)發(fā)的工作者多如牛毛,薪資待遇不比從事C語(yǔ)言開(kāi)發(fā)的人低,當(dāng)編程愛(ài)好者在選擇第一個(gè)編程語(yǔ)言時(shí),C語(yǔ)言不一定是首先。我適合學(xué)習(xí)C語(yǔ)言嗎?解決這個(gè)問(wèn)題,先回答以下幾個(gè)問(wèn)題:

  1)你學(xué)習(xí)C語(yǔ)言的目的是什么?如果是想從事這方面的工作,那么請(qǐng)義無(wú)反顧的堅(jiān)持下去,推薦你在《微機(jī)原理》、《計(jì)算機(jī)組成原理》和《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)》三本書中選一本配合《C語(yǔ)言程序設(shè)計(jì)》來(lái)看,這樣可以融匯貫通,讓你對(duì)編程有更深入更系統(tǒng)化的理解。而這種理解對(duì)計(jì)算機(jī)類學(xué)科的學(xué)習(xí)來(lái)說(shuō)很重要。

  2)您具備學(xué)習(xí)C語(yǔ)言的條件嗎?由于入職C語(yǔ)言編程的企業(yè)對(duì)入職者的要求比較高,在沒(méi)有編程工作經(jīng)驗(yàn)前提下多數(shù)想通過(guò)自學(xué)進(jìn)入類似企業(yè)的人幾乎為零,包括很多計(jì)算機(jī)專業(yè)畢業(yè)的大、中專畢業(yè)生在校期間都會(huì)學(xué)到C語(yǔ)言,畢業(yè)出來(lái)后依然云里霧里。C語(yǔ)言的開(kāi)發(fā),需要在實(shí)際工作中才能快速掌握。同時(shí),英語(yǔ)(從事C語(yǔ)言開(kāi)發(fā)需要經(jīng)常查閱英文資料,尤其是單片機(jī)領(lǐng)域)、學(xué)歷、數(shù)學(xué)算法、極強(qiáng)的邏輯思維能力等等也是讓多數(shù)人望而卻步的門檻。

【C語(yǔ)言變量的定義與使用】相關(guān)文章:

C語(yǔ)言宏定義07-01

C語(yǔ)言中的相關(guān)變量知識(shí)10-25

C語(yǔ)言的宏定義分析09-10

C語(yǔ)言預(yù)定義宏用法10-06

C語(yǔ)言if語(yǔ)句的使用06-30

C語(yǔ)言for循環(huán)的使用10-24

C 語(yǔ)言中宏的使用08-02

C語(yǔ)言socket編程使用方法06-20

如何使用C語(yǔ)言開(kāi)發(fā)DSP系統(tǒng)09-13

Swift與C語(yǔ)言指針結(jié)合使用實(shí)例09-21