91精品人妻系列动画无码 - 国产精品夜间视频香蕉 - 91丝袜人妻一区二区三区 - 久久伊伊香蕉精品网站

信盈達(dá)—您身邊的嵌入式&人工智能專家
全國免費(fèi)咨詢熱線:400-8788-909

干貨分享C語言儲(chǔ)存類型詳解

時(shí)間:2018-08-28 00:00:00 來源:信盈達(dá) 作者:信盈達(dá)

一:c語言存儲(chǔ)類型在c語言中起著重要的作用,具體的分為以下4種

1. 自動(dòng)變量(auto):函數(shù)中所有的非靜態(tài)局部變量

2. 靜態(tài)變量(static):在變量前加上static關(guān)鍵字的變量。

3. 外部變量(extern):一般用作全局變量作用域的擴(kuò)展

4. 寄存器類型(register):一般經(jīng)常被使用的的變量(如某一變量需要計(jì)算幾千次)可以設(shè)置成寄存器變量,register變量會(huì)被存儲(chǔ)在寄存器中,計(jì)算速度遠(yuǎn)快于存在內(nèi)存中的非register變量。

 

二:數(shù)據(jù)的存儲(chǔ)類型可以改變其作用域和周期

1. 作用域來分析:

變量的作用域不同,本質(zhì)上是由于變量的存儲(chǔ)類型不同,其中自動(dòng)類型和寄存器的變量屬于動(dòng)態(tài)存儲(chǔ)方式;而外部類型和靜態(tài)類型屬于靜態(tài)存儲(chǔ)方式

 

2、從生存時(shí)間的角度來看:

        自動(dòng)變量:隨著函數(shù)的進(jìn)棧和出棧而創(chuàng)建和銷毀

        靜態(tài)變量:長期存在靜態(tài)存儲(chǔ)區(qū),直到程序結(jié)束

        外部變量:長期存在靜態(tài)存儲(chǔ)區(qū),直到程序結(jié)束

       寄存器變量:離開函數(shù)值就會(huì)消失

 

三:具體分析其特點(diǎn):

1, auto只能用來標(biāo)識(shí)局部變量的存儲(chǔ)類型,對于局部變量,auto是默認(rèn)的存儲(chǔ)類型,auto標(biāo)識(shí)的變量存儲(chǔ)在棧區(qū)中,一般情況下我們?nèi)笔〔粚?,默認(rèn)為自動(dòng)類型存儲(chǔ)。

2, extern用來聲明在當(dāng)前文件中引用在當(dāng)前項(xiàng)目中的其它文件中定義的全局變量。如果全局變量未被初始化,那么將被存在bss區(qū)中,且在編譯時(shí),自動(dòng)將其值賦值為0,如果已經(jīng)被初始化,那么就被存在數(shù)據(jù)區(qū)中。全局變量,不管是否被初始化,其生命周期都是整個(gè)程序運(yùn)行過程中,為了節(jié)省內(nèi)存空間,在當(dāng)前文件中使用extern來聲明其它文件中定義的全局變量時(shí),就不會(huì)再為其分配內(nèi)存空間。

3, register的變量在由內(nèi)存調(diào)入到CPU寄存器后,則在CPU的寄存器中,因此訪問register變量將在很大程度上提高效率,因?yàn)槭∪ブ噶钪芷凇?/span>

4, static的變量,無論是全局的還是局部的,都存儲(chǔ)在數(shù)據(jù)區(qū)中,其生命周期為整個(gè)程序,如果是靜態(tài)局部變量,其作用域?yàn)橐粚}內(nèi),如果是靜態(tài)全局變量,其作用域?yàn)楫?dāng)前文件。靜態(tài)變量如果沒有被初始化,則自動(dòng)初始化為0。靜態(tài)變量只能夠初始化一次。

 

四:register不同于其他三種的特性

變量定義是指定為寄存器類型,實(shí)質(zhì)不一定是寄存器,這主要看cpu,若在cpu中的寄存器數(shù)量足夠多時(shí),則定義的變量就是保存在寄存器當(dāng)中的。


信盈達(dá)2008年在深圳特區(qū)南山高新科技園成立。自成立至今近九年來專注為企業(yè)和個(gè)人提供高端方案設(shè)計(jì)、高端嵌入式/Android培訓(xùn)等服務(wù)。公司下設(shè)信盈達(dá)實(shí)訓(xùn)學(xué)院、信盈達(dá)研發(fā)中心、信盈達(dá)教學(xué)儀器三大業(yè)務(wù)板塊。九年來公司堅(jiān)持"技術(shù)領(lǐng)先、服務(wù)領(lǐng)先",以雄厚的實(shí)力和專業(yè)的品質(zhì)成為國內(nèi)唯一有實(shí)力從產(chǎn)品最底層研發(fā)到系統(tǒng)層開發(fā)的嵌入式實(shí)訓(xùn)、產(chǎn)品解決方案提供商。為中國IT行業(yè)提供最具價(jià)值的職業(yè)教育服務(wù)。專業(yè)訓(xùn)嵌入式、物聯(lián)網(wǎng)、人工智能、Java、單片機(jī)等課程,想了解更多信息點(diǎn)擊立馬咨詢