儲(chǔ)存類:變量在定義時(shí)的儲(chǔ)存類型對(duì)其在程序中的生命周期、連接屬性及作用域有很大的關(guān)聯(lián)
鏈接屬性: 無連接、內(nèi)連接、外鏈接
關(guān)鍵字:
1、auto 用于修飾局部變量,在定義局部變量時(shí),將其定義在棧上。
普通局部變量存放在棧上,因?yàn)闂?nèi)存的特性決定了普通局部變量定時(shí)如果未初始化其的值是隨機(jī)的,因?yàn)闂?nèi)存是臟的,變量在釋放后并未對(duì)其初始化,且棧內(nèi)存被廣泛運(yùn)用,也就造就了普通變量的特性。
普通局部變量的生命周期是臨時(shí),可從其存放于棧上看出其臨時(shí)的特性。
普通局部變量的作用域?yàn)榇a塊中“{}",C89與C99略有不同,普通局部變量在代碼塊的首部被定義,在代碼塊中被運(yùn)用,在代碼塊結(jié)尾處被釋放。
2、static 該關(guān)鍵字有兩種作用,1、用于修飾靜態(tài)局部變量 2、用于修飾全局變量或者函數(shù),
且這兩種作用之間無任何的相關(guān)性,相互獨(dú)立的存在。
static修飾的局部變量為靜態(tài)局部變量,其與普通局部變量不同,并不存放在棧上,而是存放在數(shù)據(jù)段/bss段(顯式初始化為非0則在數(shù)據(jù)段,顯式初始化為0或未顯示初始化則在bss段)上,同樣的因其存放在數(shù)據(jù)段上也就決定了其的生命周期并不是臨時(shí)的而是永久的。但靜態(tài)局部變量與普通局部變量也存在相似性,靜態(tài)局部變量的作用域仍為代碼塊,且其連接屬性依舊為無連接。
static修飾的全部變量/函數(shù)為靜態(tài)全局變量/函數(shù),其作用域的文件范圍,生命周期為永久,連接屬性因其只能在自身的文件內(nèi)部被調(diào)用所以連接屬性為內(nèi)連接。
3、register 該關(guān)鍵字修飾的變量分配于寄存器中,降存放于寄存器中的變量可大大提高讀取速度,但寄存器是有限的,
且經(jīng)常性的被系統(tǒng)本身使用,故謹(jǐn)慎使用該關(guān)鍵字。
4、extern 該關(guān)鍵字用來全局聲明變量/函數(shù),聲明后的全局變量及函數(shù)可在別的文件中被調(diào)用(前提是包含了該文件的.h文件),
作用域變更為全文件,鏈接屬性為外鏈接。
5、volatile 其意思為可變的,在C語言中定義變量時(shí)加上該關(guān)鍵字,即可告訴編譯器該變量可被編譯器以外的代碼改變,編譯器之內(nèi)的意思是變量的值的改變是代碼的作用,編譯器之外的改變就是這個(gè)改變不是代碼造成的,或者不是當(dāng)前代碼造成的,編譯器在編譯當(dāng)前代碼時(shí)無法預(yù)知。譬如在中斷中對(duì)變量的操作就必須加上該關(guān)鍵字,防止編譯器對(duì)代碼進(jìn)行了錯(cuò)誤的優(yōu)化。
6、restrict restrict只用來修飾指針,不能修飾普通變量。
7、typedef
存儲(chǔ)類決定生命周期,作用域決定鏈接屬性
宏和inline函數(shù)的鏈接屬性為無連接。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
新聞標(biāo)題:儲(chǔ)存類生命周期鏈接屬性作用域總結(jié)-創(chuàng)新互聯(lián)
文章地址:http://m.rwnh.cn/article38/iiosp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、云服務(wù)器、面包屑導(dǎo)航、全網(wǎng)營銷推廣、標(biāo)簽優(yōu)化、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容