音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

變量的存儲(chǔ)類型

出處:cnchip 發(fā)布于:2009-07-13 11:58:59

  作者:曾宏安,華清遠(yuǎn)見嵌入式學(xué)院講師。

  我們?cè)诔绦蛑袝?huì)經(jīng)常定義一些變量來保存和處理數(shù)據(jù)。從本質(zhì)上看,變量代表了一段可操作的內(nèi)存,也可以認(rèn)為變量是內(nèi)存的符號(hào)化表示。當(dāng)程序中需要使用內(nèi)存時(shí),可以定義某種類型的變量。此時(shí)編譯器根據(jù)變量的數(shù)據(jù)類型分配一定大小的內(nèi)存空間。程序就可以通過變量名來訪問對(duì)應(yīng)的內(nèi)存了。

  如果說變量的數(shù)據(jù)類型決定了對(duì)應(yīng)內(nèi)存的大小,那么存儲(chǔ)類型則影響著對(duì)應(yīng)內(nèi)存的使用方式。所謂使用方式,具體說就是在什么時(shí)間、程序的什么地方可以使用變量,即變量的生命周期和作用域。

  先了解一些基本常識(shí)。一、在程序運(yùn)行時(shí)內(nèi)存中有三個(gè)區(qū)域可以保存變量:靜態(tài)存儲(chǔ)區(qū)、棧(stack)和堆(heap)。二、根據(jù)變量定義的位置可分為全局變量(定義在函數(shù)體外的變量)和局部變量(定義在函數(shù)體內(nèi)的變量,包括形參)。

  所有的全局變量和靜態(tài)局部變量(定義時(shí)使用關(guān)鍵字static)都保存在靜態(tài)存儲(chǔ)區(qū),其特點(diǎn)是:在編譯時(shí)分配內(nèi)存空間并進(jìn)行初始化。在程序運(yùn)行期間,變量一直存在,直到程序結(jié)束,變量對(duì)應(yīng)的內(nèi)存空間才被釋放。

  而所有的非靜態(tài)局部變量(又稱為自動(dòng)變量)保存在棧(stack)中,其特點(diǎn)是:在變量所在的函數(shù)或模塊被執(zhí)行時(shí)動(dòng)態(tài)創(chuàng)建,函數(shù)或模塊執(zhí)行完時(shí),變量對(duì)應(yīng)的內(nèi)存空間被釋放。換句話說,函數(shù)或模塊每被執(zhí)行,局部變量就會(huì)重新被分配空間。如果變量定義時(shí)沒有初始化,那么變量中的值是隨機(jī)數(shù)。

  所有用malloc分配的內(nèi)存(又稱為動(dòng)態(tài)內(nèi)存)都在堆(heap)中,其特點(diǎn)是:一般通過指針來訪問動(dòng)態(tài)分配的內(nèi)存。即可以通過free來手動(dòng)釋放動(dòng)態(tài)內(nèi)存,也可以在程序結(jié)束時(shí)由系統(tǒng)自動(dòng)釋放。

  以上討論的是變量的生命周期,下面來看作用域。作用域指的是變量的可見范圍,即在變量的生命周期內(nèi),程序的哪些部分可以使用該變量。

  全局變量的作用域從定義點(diǎn)開始一直到源文件的結(jié)束。如果要在定義點(diǎn)之前使用全局變量的話就需要使用關(guān)鍵字extern對(duì)作用域進(jìn)行擴(kuò)展。全局變量缺省是可以被其他文件引用的。如果希望僅限于本文件使用的話,需要在定義時(shí)使用關(guān)鍵字static。

  對(duì)于局部變量來說,無論是靜態(tài)局部變量還是自動(dòng)變量,作用域都僅限于定義該變量的函數(shù)或模塊。

  動(dòng)態(tài)內(nèi)存只要沒有被釋放就可以在程序的任何地方使用,前提是要知道動(dòng)態(tài)內(nèi)存的地址。

  注:static加在全局變量前影響的是作用域,加在局部變量前影響的是生命周期。

  “本文由華清遠(yuǎn)見
https://www.embedu.org/index.htm提供”



  
關(guān)鍵詞:變量的存儲(chǔ)類型存儲(chǔ)

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

存儲(chǔ)芯片 W25Q128JVSIQ Winbond華邦電子
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!