1、static
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,做網(wǎng)站、成都網(wǎng)站制作,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。這個關(guān)鍵字有三種用法:
(1)第一種是用來修飾局部變量,使之成為靜態(tài)局部變量;靜態(tài)局部變量存儲在數(shù)據(jù)段/bss段中,作用域是代碼塊作用域,生命周期是程序生命周期,鏈接屬性是無連接。靜態(tài)局部變量只初始化一次,以后使用時的值是上次使用后的值(類似全局變量)
(2)第二種是用來修飾全局變量,使之成為靜態(tài)全局變量;靜態(tài)全局變量存儲在數(shù)據(jù)段/bss段中,作用域是文件作用域,生命周期是程序生命周期,鏈接屬性是外鏈接。static修飾的全局變量只在定義它的源文件內(nèi)有效,在同一源程序的其它源文件內(nèi)不可使用,利用此特性可以避免多文件變量重名的問題。
(3)第三種是用來修飾函數(shù),使之成為靜態(tài)函數(shù);靜態(tài)全局變量存儲在數(shù)據(jù)段/bss段中,作用域是文件作用域,生命周期是程序生命周期,鏈接屬性是內(nèi)鏈接。static修飾的函數(shù)只在定義它的源文件內(nèi)有效,在同一源程序的其它源文件內(nèi)不可使用,利用此特性可以避免多文件函數(shù)重名的問題。
(4)在多個源文件的程序中,只在一個源文件使用的函數(shù)或者全局變量應(yīng)該加static關(guān)鍵字加以說明。
2、auto
這個關(guān)鍵字只有一種用法:
只能用來修飾局部變量,使之成為自動局部變量,自動局部變量存儲在棧上,其實我們平常定義的局部變量就是自動局部變量,只是我們把auto關(guān)鍵字省略了;可見,定義普通的局部變量默認(rèn)就是auto關(guān)鍵字修飾的局部變量。
3、extern
(1)這個關(guān)鍵字常用來聲明全局變量;目地是在多文件項目中在a.c中定義全局變量而在b.c中使用這個全局變量;
(2)因為C語言程序編譯時是以單個.c文件為單位編譯的,如果不聲明直接使用,編譯器就會報錯誤,解決方案就是使用extern關(guān)鍵字聲明(注意聲明時不能賦值,否則會出現(xiàn)錯誤:重復(fù)定義)
(3)應(yīng)該在b.c中使用這個全局變量之前聲明這個全局變量,告訴編譯器我在別的文件中定義了這個全局變量,并且原型和聲明一樣,這樣鏈接時鏈接器就會去別的.o文件中找到這個同名的全局變量。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。