發(fā)布時(shí)間:2021-10-29 15:35:01來源:有考培訓(xùn)網(wǎng)綜合
武漢達(dá)內(nèi)C++培訓(xùn)班怎么樣?全局變量,局部變量編程語言中的基本概念,如果你還不是非常明確地清楚標(biāo)題的問題,并且不知道作用域,鏈接屬性,存儲(chǔ)期等概念的具體含義,那么本文你不該錯(cuò)過。為了更加清晰的理解我們的問題,需要先了解三個(gè)概念:作用域,鏈接屬性,存儲(chǔ)期。
武漢達(dá)內(nèi)C++培訓(xùn)班怎么樣?
達(dá)內(nèi)教育隸屬于加拿大達(dá)內(nèi)IT培訓(xùn)集團(tuán),于2002年成立 ,是達(dá)內(nèi)IT培訓(xùn)集團(tuán)直屬學(xué)院。學(xué)院成立旨在建立軟件高級(jí)人才培養(yǎng)的通道,促進(jìn)我國(guó)信息產(chǎn)業(yè)迅速發(fā)展。依托達(dá)內(nèi)集團(tuán)國(guó)內(nèi)持平的課程體系(TTS6.0),雄厚的師資力量,廣闊的就業(yè)平臺(tái),迄今為止已與國(guó)內(nèi)上萬家IT企業(yè)進(jìn)行人才輸送合作,其中緊密合作企業(yè)4000余家、深入合作企業(yè)200余家、訂單輸送聯(lián)盟企業(yè)107家。作為國(guó)內(nèi)IT培訓(xùn)的實(shí)力品牌,達(dá)內(nèi)集團(tuán)的每一名員工都以"幫助每一個(gè)學(xué)員成就夢(mèng)想"為己任,也正因?yàn)檫_(dá)內(nèi)人的執(zhí)著與努力,達(dá)內(nèi)堅(jiān)持為社會(huì)輸送合格人才,為中國(guó)IT行業(yè)的發(fā)展做出了貢獻(xiàn)。
作用域
C語言中,作用域用來描述標(biāo)識(shí)符能夠被哪些區(qū)域訪問。
而常見作用域有以下幾種:
塊作用域,可見范圍是從定義處到包含該定義的塊結(jié)尾
函數(shù)作用域,goto語句的標(biāo)簽就具有函數(shù)作用域
文件作用域,從定義處到定義該文件的末尾都可見。定義在函數(shù)之外的變量,就具有文件作用域了。
可以看到,error標(biāo)簽具有函數(shù)作用域,整個(gè)函數(shù)內(nèi)都可見,而temp具有塊作用域,因此在大括號(hào)外部,不能直接使用它。而num1和num2具有文件作用域,因此main函數(shù)可以直接使用它。
鏈接屬性
在《hello程序是如何變成可執(zhí)行文件的》我們說到了編譯的過程,較后一個(gè)步驟就是鏈接。鏈接屬性決定了在不同作用域的同名標(biāo)識(shí)符能否綁定到同一個(gè)對(duì)象或者函數(shù)?;蛘哒f,不同作用域的標(biāo)識(shí)符在編譯后是否是同一個(gè)實(shí)體。
c變量有三種鏈接屬性:
外部鏈接,extern修飾的,或者沒有static修飾的具有文件作用域的變量具有外部鏈接屬性
內(nèi)部鏈接,static修飾的具有文件作用域的變量具有內(nèi)部鏈接屬性
無鏈接,塊作用域,函數(shù)作用域和函數(shù)原型作用域的變量無鏈接屬性
再稍作解釋,沒有static修飾,且具有文件作用域的變量,他們?cè)阪溄訒r(shí),多個(gè)同名標(biāo)識(shí)符的變量較終都綁定到同一個(gè)實(shí)體。而static修飾的具有文件作用域的變量就不一樣了,不同文件內(nèi),即便標(biāo)識(shí)符名字相同,它們也綁定到了不同的實(shí)體。
因此,如果我們希望某個(gè)變量或函數(shù)只在某一個(gè)文件使用,那么使用static修飾是一個(gè)很好的做法。