/*
全局變量和局部變量?:
????全局變量?:?
????????1,如果沒有初始化,默認(rèn)值為0;
????????2,存儲在靜態(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升級之后,處于安全性考慮,不在允許在其他文件中,直接訪問外部全局變量,但僅僅只是Xcode不支持而已,但其本身,并沒有錯(cuò),
????????????在終端中,可正常執(zhí)行.但在Xcode中想要在其他文件中,訪問外部全局變量,必須以extern關(guān)鍵字聲明,要訪問某一個(gè)外部全局變量,明確用戶知道自己當(dāng)前操作;
?????????3,extern的其他用法,在同一個(gè)文件中,如果變量定義在變量使用之后,同樣可以使用extern進(jìn)行聲明;
static對局部變量的作用?:
????1,會將局部變量創(chuàng)建在靜態(tài)區(qū)中,延長其生命周期,減少局部變量的重復(fù)創(chuàng)建和釋放,提高程序執(zhí)行效率;
????2,作用域?:?自定義位置起至文件末尾;
????3,當(dāng)系統(tǒng)遇到static修飾的局部變量時(shí),首先會檢查靜態(tài)區(qū)中是否存在該變量,如果存在,則直接使用,該語句僅僅起到聲明的作用,如果不存在,則在靜態(tài)區(qū)中創(chuàng)建該變量;
static和extern對函數(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ù);
*/
新聞標(biāo)題:C語言之static和extern
鏈接分享:
http://weahome.cn/article/jdghgh.html