溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語言之static和extern

發(fā)布時(shí)間:2020-08-10 23:42:00 來源:網(wǎng)絡(luò) 閱讀:293 作者:師趣妮 欄目:編程語言
/*
全局變量和局部變量?:
????全局變量?:?
????????1,如果沒有初始化,默認(rèn)值為0;
????????2,存儲(chǔ)在靜態(tài)區(qū)中,隨著程序啟動(dòng)而創(chuàng)建,程序結(jié)束而釋放;
?????局部變量?:?
?????????1,作用域?:?自定義位置起至return或"}"結(jié)束;
?????????2,同一個(gè)作用域內(nèi),局部變量不可同名;
?????????3,未初始化的局部變量中,保存著一堆亂碼;
?????????4,變量的調(diào)用原則?:?就近原則;
?????????5,局部變量保存在棧中,作用局結(jié)束即被釋放;
內(nèi)部全局變量和外部全局變量?:
????內(nèi)部全局變量?:?以static關(guān)鍵字修飾,只能夠被當(dāng)前文件訪問的全局變量
????????1,同一作用域內(nèi)可定義多個(gè)同名的內(nèi)部全局變量,同名的內(nèi)部全局變量指向同一塊內(nèi)存空間;
????????2,不同文件中的內(nèi)部全局變量指向不同的內(nèi)存空間;
?????外部全局變量?:?默認(rèn)情況下,創(chuàng)建的全局變量均為外部全局變量,可其他文件訪問的全局變量;
?????????1,?可同時(shí)定義多個(gè)同名的外部全局變量,同名的外部全局變量指向同一塊內(nèi)存空間;
?????????2,?外部全局變量的安全性問題?:?在Xcode升級(jí)之后,處于安全性考慮,不在允許在其他文件中,直接訪問外部全局變量,但僅僅只是Xcode不支持而已,但其本身,并沒有錯(cuò),
????????????在終端中,可正常執(zhí)行.但在Xcode中想要在其他文件中,訪問外部全局變量,必須以extern關(guān)鍵字聲明,要訪問某一個(gè)外部全局變量,明確用戶知道自己當(dāng)前操作;
?????????3,extern的其他用法,在同一個(gè)文件中,如果變量定義在變量使用之后,同樣可以使用extern進(jìn)行聲明;
static對(duì)局部變量的作用?:
????1,會(huì)將局部變量創(chuàng)建在靜態(tài)區(qū)中,延長(zhǎng)其生命周期,減少局部變量的重復(fù)創(chuàng)建和釋放,提高程序執(zhí)行效率;
????2,作用域?:?自定義位置起至文件末尾;
????3,當(dāng)系統(tǒng)遇到static修飾的局部變量時(shí),首先會(huì)檢查靜態(tài)區(qū)中是否存在該變量,如果存在,則直接使用,該語句僅僅起到聲明的作用,如果不存在,則在靜態(tài)區(qū)中創(chuàng)建該變量;
static和extern對(duì)函數(shù)的作用?:
????內(nèi)部函數(shù)和外部函數(shù)?:
????????外部函數(shù)?:?默認(rèn)情況下,創(chuàng)建的函數(shù),即為外部函數(shù),可被其他文件訪問;
????????內(nèi)部函數(shù)?:?以關(guān)鍵字static修飾,只能夠被當(dāng)前文件訪問的函數(shù);當(dāng)然static也可用于聲明一個(gè)內(nèi)部函數(shù);
*/


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI