最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

EasyC++內(nèi)部鏈接性和無鏈接性

 更新時間:2021年12月17日 09:28:31   作者:梁唐  
這篇文章主要介紹了EasyC++內(nèi)部鏈接性和無鏈接性,當我們使用static關(guān)鍵字,將變量的作用于限制在整個文件時,該變量的鏈接性為內(nèi)部鏈接性,然而無鏈接性的變量其實就是在代碼塊當中使用static關(guān)鍵字創(chuàng)建的,接下來一起進入文章了解更多內(nèi)容吧

文章轉(zhuǎn)自微信公眾號:Coder梁(ID:Coder_LT)

1.內(nèi)部鏈接性

當我們使用static關(guān)鍵字,將變量的作用于限制在整個文件時,該變量的鏈接性為內(nèi)部鏈接性。在多文件的程序當中,內(nèi)部鏈接性和外部鏈接性是有所差別的,內(nèi)部鏈接性的變量只能在當前文件使用,而常規(guī)外部變量是可以跨文件使用的。

但這就帶來了一個問題,如果我們在兩個文件當中都定義了同一個全局變量,會發(fā)生什么呢?

// file1
int error = 20;

// file2
int error = 5;


答案是:這樣的做法會報錯,因為它違反了單定義規(guī)則。

但是我們可以將其中一個變量通過static關(guān)鍵字變成靜態(tài)內(nèi)部變量,那么在該文件當中,靜態(tài)變量將隱藏常規(guī)的外部變量:

// file1
int error = 20;

// file2
static int error = 5;

這樣做的好處是,當我們確定我們某些變量的使用范圍只有當前文件的時候,我們可以使用static關(guān)鍵字來防止它和一些其他文件當中的外部變量相沖突。

2.無鏈接性

無鏈接性的變量我們在之前的文章當中也曾經(jīng)提到過,其實就是在代碼塊當中使用static關(guān)鍵字創(chuàng)建的。

在代碼塊當中創(chuàng)建的靜態(tài)變量會和代碼塊的生命周期脫鉤,雖然它只能在代碼塊運行時使用,但它的結(jié)果會一直存在,并不會隨著代碼塊的執(zhí)行結(jié)束而消亡。

void test() {
 static int ret = 0;
 ret++;
 cout << ret << endl;
}

int main() {
    test();
 test();
 return 0;
}

這段代碼的運行之后將會得到1和2,因為ret是一個無鏈接性的靜態(tài)變量,它會一直存在。所以當test運行一次之后,它的結(jié)果會變成1,并被保存下來。

主要應用場景就是我們希望有些變量能夠隨著代碼塊的運行有所沉淀,記錄下中途的狀態(tài)或者是中間結(jié)果。有了靜態(tài)變量就可以不必使用全局變量了。

到此這篇關(guān)于EasyC++內(nèi)部鏈接性和無鏈接性的文章就介紹到這了,更多相關(guān)C++內(nèi)部鏈接性和無鏈接性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言 風靡一時的黃金礦工游戲?qū)崿F(xiàn)流程詳解

    C語言 風靡一時的黃金礦工游戲?qū)崿F(xiàn)流程詳解

    《黃金礦工》是一款非常經(jīng)典的游戲。在游戲中,玩家通過不斷挖礦,獲取金子,最終能夠闖入下一關(guān)。在這個過程中,會不斷有巖石、煙霧、老鼠來搗亂,甚至還會出現(xiàn)扛著炸藥包的小老鼠,玩家必須戰(zhàn)勝它們,才能進入更深的礦坑
    2021-11-11
  • C語言代碼實現(xiàn)簡單的掃雷小游戲

    C語言代碼實現(xiàn)簡單的掃雷小游戲

    這篇文章主要為大家詳細介紹了C語言代碼實現(xiàn)簡單的掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • 淺析iterator與指針的區(qū)別

    淺析iterator與指針的區(qū)別

    指針和iterator都支持減法運算,指針-指針得到的是兩個指針之間的距離,迭代器-迭代器得到的是兩個迭代器之間的距離
    2013-10-10
  • C語言實現(xiàn)文件版通訊錄的代碼分享

    C語言實現(xiàn)文件版通訊錄的代碼分享

    這篇文章主要為大家詳細介紹了如何利用C語言實現(xiàn)一個文件版通訊錄,主要運用了結(jié)構(gòu)體,一維數(shù)組,函數(shù),分支與循環(huán)語句等等知識,需要的可以參考一下
    2023-01-01
  • Qt示例教程之用Qt畫一個溫度計

    Qt示例教程之用Qt畫一個溫度計

    在Qt繪圖中經(jīng)常需要繪制一些儀表的刻度盤,比如溫度計,下面這篇文章主要給大家介紹了關(guān)于用Qt畫一個溫度計的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • 淺談C++模板元編程

    淺談C++模板元編程

    本篇文章主要介紹了淺談C++模板元編程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • C語言實現(xiàn)刪除某一個數(shù)組值的方法

    C語言實現(xiàn)刪除某一個數(shù)組值的方法

    這篇文章主要給大家分享C語言數(shù)組中刪除數(shù)組中某個值的方法,既然要學習刪除數(shù)組中的元素,我們就必須得先知道數(shù)組中有哪些元素。同時還要定義一個變量,并將需要刪除的元素賦值給那個變量。下面來看看文章的詳細內(nèi)容吧
    2021-11-11
  • C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法

    C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法

    這篇文章主要介紹了C語言基本排序算法之插入排序與直接選擇排序?qū)崿F(xiàn)方法,結(jié)合具體實例形式分析了插入排序與直接選擇排序的定義、使用方法及相關(guān)注意事項,需要的朋友可以參考下
    2017-09-09
  • Qt實現(xiàn)電子時鐘的示例代碼

    Qt實現(xiàn)電子時鐘的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Qt實現(xiàn)顯示與桌面上并可以隨意拖拽至桌面任意位置的電子時鐘案例,感興趣的小伙伴可以嘗試一下
    2022-06-06
  • 十進制與BCD碼轉(zhuǎn)換的算法詳解

    十進制與BCD碼轉(zhuǎn)換的算法詳解

    BCD轉(zhuǎn)換成十進制 BCD碼是指用二進制來表示十進制數(shù)的編碼,即用4位二進制來表示一位十進制數(shù),因此4位二進制數(shù)表示最大的十進制數(shù)9(1001),只取十六個數(shù)中的十個數(shù)(有別于8421碼)
    2021-09-09

最新評論

都匀市| 炉霍县| 张家界市| 拉萨市| 巴中市| 洪湖市| 古田县| 桐庐县| 奉贤区| 大关县| 萨嘎县| 阳新县| 怀远县| 温宿县| 文安县| 三亚市| 浦城县| 青田县| 张家界市| 扶绥县| 定陶县| 云和县| 江达县| 彰武县| 辉南县| 高碑店市| 吉木乃县| 彰化县| 衡阳县| 临漳县| 河津市| 德保县| 宁陕县| 大埔县| 诸暨市| 文山县| 杭锦旗| 寻乌县| 乌兰察布市| 文成县| 刚察县|