EasyC++內(nèi)部鏈接性和無鏈接性
文章轉(zhuǎn)自微信公眾號(hào):Coder梁(ID:Coder_LT)
1.內(nèi)部鏈接性
當(dāng)我們使用static關(guān)鍵字,將變量的作用于限制在整個(gè)文件時(shí),該變量的鏈接性為內(nèi)部鏈接性。在多文件的程序當(dāng)中,內(nèi)部鏈接性和外部鏈接性是有所差別的,內(nèi)部鏈接性的變量只能在當(dāng)前文件使用,而常規(guī)外部變量是可以跨文件使用的。
但這就帶來了一個(gè)問題,如果我們?cè)趦蓚€(gè)文件當(dāng)中都定義了同一個(gè)全局變量,會(huì)發(fā)生什么呢?
// file1 int error = 20; // file2 int error = 5;
答案是:這樣的做法會(huì)報(bào)錯(cuò),因?yàn)樗`反了單定義規(guī)則。
但是我們可以將其中一個(gè)變量通過static關(guān)鍵字變成靜態(tài)內(nèi)部變量,那么在該文件當(dāng)中,靜態(tài)變量將隱藏常規(guī)的外部變量:
// file1 int error = 20; // file2 static int error = 5;
這樣做的好處是,當(dāng)我們確定我們某些變量的使用范圍只有當(dāng)前文件的時(shí)候,我們可以使用static關(guān)鍵字來防止它和一些其他文件當(dāng)中的外部變量相沖突。
2.無鏈接性
無鏈接性的變量我們?cè)谥暗奈恼庐?dāng)中也曾經(jīng)提到過,其實(shí)就是在代碼塊當(dāng)中使用static關(guān)鍵字創(chuàng)建的。
在代碼塊當(dāng)中創(chuàng)建的靜態(tài)變量會(huì)和代碼塊的生命周期脫鉤,雖然它只能在代碼塊運(yùn)行時(shí)使用,但它的結(jié)果會(huì)一直存在,并不會(huì)隨著代碼塊的執(zhí)行結(jié)束而消亡。
void test() {
static int ret = 0;
ret++;
cout << ret << endl;
}
int main() {
test();
test();
return 0;
}
這段代碼的運(yùn)行之后將會(huì)得到1和2,因?yàn)閞et是一個(gè)無鏈接性的靜態(tài)變量,它會(huì)一直存在。所以當(dāng)test運(yùn)行一次之后,它的結(jié)果會(huì)變成1,并被保存下來。
主要應(yīng)用場(chǎng)景就是我們希望有些變量能夠隨著代碼塊的運(yùn)行有所沉淀,記錄下中途的狀態(tài)或者是中間結(jié)果。有了靜態(tài)變量就可以不必使用全局變量了。
到此這篇關(guān)于EasyC++內(nèi)部鏈接性和無鏈接性的文章就介紹到這了,更多相關(guān)C++內(nèi)部鏈接性和無鏈接性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言 風(fēng)靡一時(shí)的黃金礦工游戲?qū)崿F(xiàn)流程詳解
《黃金礦工》是一款非常經(jīng)典的游戲。在游戲中,玩家通過不斷挖礦,獲取金子,最終能夠闖入下一關(guān)。在這個(gè)過程中,會(huì)不斷有巖石、煙霧、老鼠來?yè)v亂,甚至還會(huì)出現(xiàn)扛著炸藥包的小老鼠,玩家必須戰(zhàn)勝它們,才能進(jìn)入更深的礦坑2021-11-11
C語言代碼實(shí)現(xiàn)簡(jiǎn)單的掃雷小游戲
這篇文章主要為大家詳細(xì)介紹了C語言代碼實(shí)現(xiàn)簡(jiǎn)單的掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
C語言實(shí)現(xiàn)刪除某一個(gè)數(shù)組值的方法
這篇文章主要給大家分享C語言數(shù)組中刪除數(shù)組中某個(gè)值的方法,既然要學(xué)習(xí)刪除數(shù)組中的元素,我們就必須得先知道數(shù)組中有哪些元素。同時(shí)還要定義一個(gè)變量,并將需要?jiǎng)h除的元素賦值給那個(gè)變量。下面來看看文章的詳細(xì)內(nèi)容吧2021-11-11
C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法
這篇文章主要介紹了C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法,結(jié)合具體實(shí)例形式分析了插入排序與直接選擇排序的定義、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-09-09

