亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2021年12月17日 09:28:31   作者:梁唐  
這篇文章主要介紹了EasyC++內(nèi)部鏈接性和無(wú)鏈接性,當(dāng)我們使用static關(guān)鍵字,將變量的作用于限制在整個(gè)文件時(shí),該變量的鏈接性為內(nèi)部鏈接性,然而無(wú)鏈接性的變量其實(shí)就是在代碼塊當(dāng)中使用static關(guān)鍵字創(chuàng)建的,接下來(lái)一起進(jìn)入文章了解更多內(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ī)外部變量是可以跨文件使用的。

但這就帶來(lái)了一個(gè)問(wèn)題,如果我們?cè)趦蓚€(gè)文件當(dāng)中都定義了同一個(gè)全局變量,會(huì)發(fā)生什么呢?

// file1
int error = 20;

// file2
int error = 5;


答案是:這樣的做法會(huì)報(bào)錯(cuò),因?yàn)樗`反了單定義規(guī)則。

但是我們可以將其中一個(gè)變量通過(guò)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)鍵字來(lái)防止它和一些其他文件當(dāng)中的外部變量相沖突。

2.無(wú)鏈接性

無(wú)鏈接性的變量我們?cè)谥暗奈恼庐?dāng)中也曾經(jīng)提到過(guò),其實(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è)無(wú)鏈接性的靜態(tài)變量,它會(huì)一直存在。所以當(dāng)test運(yùn)行一次之后,它的結(jié)果會(huì)變成1,并被保存下來(lái)。

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

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

相關(guān)文章

  • C++ 單例模式的幾種實(shí)現(xiàn)方式研究

    C++ 單例模式的幾種實(shí)現(xiàn)方式研究

    單例模式,可以說(shuō)設(shè)計(jì)模式中最常應(yīng)用的一種模式了,據(jù)說(shuō)也是面試官最喜歡的題目。但是如果沒(méi)有學(xué)過(guò)設(shè)計(jì)模式的人,可能不會(huì)想到要去應(yīng)用單例模式,面對(duì)單例模式適用的情況
    2019-01-01
  • C++實(shí)現(xiàn)LeetCode(132.拆分回文串之二)

    C++實(shí)現(xiàn)LeetCode(132.拆分回文串之二)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(132.拆分回文串之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 如何在C++中實(shí)現(xiàn)按位存取

    如何在C++中實(shí)現(xiàn)按位存取

    實(shí)現(xiàn)緊湊存取,不是按一個(gè)字節(jié)一個(gè)字節(jié)地存取,而是按位存取,本文就是介紹了如何在C++中實(shí)現(xiàn)按位存取,需要的朋友可以參考下
    2015-07-07
  • C語(yǔ)言宏定義的擴(kuò)展定義講解

    C語(yǔ)言宏定義的擴(kuò)展定義講解

    這篇文章主要介紹了C語(yǔ)言宏定義的擴(kuò)展,宏定義是C語(yǔ)言提供的三種預(yù)處理功能的其中一種,這三種預(yù)處理包括:宏定義、文件包含、條件編譯
    2022-12-12
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)銀行模擬

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)銀行模擬

    這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)銀行模擬的相關(guān)資料,通過(guò)此文希望大家能理解離散化的方法,希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • 詳解C語(yǔ)言-二級(jí)指針三種內(nèi)存模型

    詳解C語(yǔ)言-二級(jí)指針三種內(nèi)存模型

    這篇文章主要介紹了詳解C語(yǔ)言-二級(jí)指針三種內(nèi)存模型的相關(guān)知識(shí),文中代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • C語(yǔ)言打印各種圖案實(shí)例代碼

    C語(yǔ)言打印各種圖案實(shí)例代碼

    大家好,本篇文章主要講的是C語(yǔ)言打印各種圖案實(shí)例代碼,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C++學(xué)習(xí)之初始化列表詳解

    C++學(xué)習(xí)之初始化列表詳解

    這篇文章主要為大家詳細(xì)介紹了C++中初始化列表的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C++有一定的幫助,需要的小伙伴可以了解一下
    2023-03-03
  • C++實(shí)現(xiàn)和電腦對(duì)戰(zhàn)三子棋實(shí)例

    C++實(shí)現(xiàn)和電腦對(duì)戰(zhàn)三子棋實(shí)例

    大家好,本篇文章主要講的是C++實(shí)現(xiàn)和電腦對(duì)戰(zhàn)三子棋實(shí)例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 關(guān)于C++運(yùn)算符重載的一些困惑詳解

    關(guān)于C++運(yùn)算符重載的一些困惑詳解

    這篇文章主要給大家介紹了關(guān)于C++運(yùn)算符重載的一些困惑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論