版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、CC中Static的作用詳述在C語(yǔ)言中,static的字面意思很容易把我們導(dǎo)入歧途,其實(shí)它的作用有三條。(1)先來(lái)介紹它的第一條也是最重要的一條:隱藏。當(dāng)我們同時(shí)編譯多個(gè)文件時(shí),所有未加static前綴的全局變量和函數(shù)都具有全局可見性。為理解這句話,我舉例來(lái)說(shuō)明。我們要同時(shí)編譯兩個(gè)源文件,一個(gè)是a.c,另一個(gè)是main.c。下面是a.c的內(nèi)容a=Aglobalvariablevoidmsg()printf(“Hellon“)下面是mai
2、n.c的內(nèi)容intmain(void)externaexternvariablemustbedeclaredbefeuseprintf(“%c“a)(void)msg()return0程序的運(yùn)行結(jié)果是:AHello你可能會(huì)問(wèn):為什么在a.c中定義的全局變量a和函數(shù)msg能在main.c中使用?前面說(shuō)過(guò),所有未加static前綴的全局變量和函數(shù)都具有全局可見性,其它的源文件也能訪問(wèn)。此例中,a是全局變量,msg是函數(shù),并且都沒(méi)有加stat
3、ic前綴,因此對(duì)于另外的源文件main.c是可見的。如果加了static,就會(huì)對(duì)其它源文件隱藏。例如在a和msg的定義前加上static,main.c就看不到它們了。利用這一特性可以在不同的文件中定義同名函數(shù)和同名變量,而不必?fù)?dān)心命名沖突。Static可以用作函數(shù)和變量的前綴,對(duì)于函數(shù)來(lái)講,static的作用僅限于隱藏,而對(duì)于變量,static還有下面兩個(gè)作用。(2)static的第二個(gè)作用是保持變量?jī)?nèi)容的持久。存儲(chǔ)在靜態(tài)數(shù)據(jù)區(qū)的變量會(huì)
4、在程序剛開始運(yùn)行時(shí)就完成初始化,也是唯一的一次初始化。共有兩種變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū):全局變量和static變量,只不過(guò)和全局變量比起來(lái),static可以控制變量的可見范圍,說(shuō)到底static還是用來(lái)隱藏的。雖然這種用法不常見,但我還是舉一個(gè)例子。#includeintfun(void)staticintcount=10事實(shí)上此賦值語(yǔ)句從來(lái)沒(méi)有執(zhí)行過(guò)returncountintcount=1intmain(void)printf(“glo
5、balttlocalstaticn“)f(countintaintmain(void)intistaticstr[10]printf(“integer:%dstring:(begin)%s(end)“astr)return0程序的運(yùn)行結(jié)果如下integer:0string:(begin)(end)最后對(duì)static的三條作用做一句話總結(jié)。首先static的最主要功能是隱藏,其次因?yàn)閟tatic變量存放在靜態(tài)存儲(chǔ)區(qū),所以它具備持久性和默認(rèn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言中static變量使用方法
- Computing Static Slice for java programs.pdf
- [學(xué)習(xí)]二次函數(shù)中a,b,c的作用
- Soccer Static Video Summarization System Based on Genetic Algorithm.pdf
- An_assessment_of_quasi-static_and_operational_errors_in_NC_machine_tools.pdf
- Webcam Based Hand Gesture Recognition System for Static Image.pdf
- 畢業(yè)論文(設(shè)計(jì))the analysis of non-static electricity in the electromagnetics
- 蛋白激酶C在腫瘤再增殖中的作用及作用機(jī)制研究.pdf
- C1QBP在腎癌發(fā)展進(jìn)程中的作用.pdf
- MicroRNA-34c調(diào)控C-Met在肝細(xì)胞肝癌中作用的研究.pdf
- Study on Some Problems of Static Rough Sets and Dynamic Rough Sets.pdf
- 大鼠心臟移植模型中mTOR C1-C2信號(hào)通路在消除慢性排斥反應(yīng)中的作用.pdf
- Complement C6-C9基因在奶牛乳腺炎中的作用機(jī)制.pdf
- C2orf40在乳腺癌中的作用及作用機(jī)制研究.pdf
- C-Kit+心臟干細(xì)胞在心肌修復(fù)中的作用.pdf
- mabo3.2c1c2體外保護(hù)作用的研究和在實(shí)驗(yàn)動(dòng)物檢測(cè)中的應(yīng)用
- lateral stiffness estimation in frames and its implementation to continuum models for linear and nonlinear static analysis
- 線粒體中C1QBP相互作用蛋白的研究.pdf
- 轉(zhuǎn)錄因子Arx的核質(zhì)分布在調(diào)控C2C12細(xì)胞分化中的作用.pdf
- Study of Static and Fatigue Performance of Basalt Fiber Reinforced Polymer Multi--Bolted Connections.pdf
評(píng)論
0/150
提交評(píng)論