關(guān)鍵字static的使用方法
3. 可執(zhí)行程序內(nèi)存空間與邏輯地址空間的映射與劃分
左邊是UNIX系統(tǒng)的執(zhí)行文件,右邊是進(jìn)程對(duì)應(yīng)的邏輯地址空間的劃分情況
4. 舉例
二、static 變量
static變量主要區(qū)分靜態(tài)全局變量和全局變量、局部變量和靜態(tài)局部變量之間的區(qū)別。
1. 靜態(tài)全局變量、全局變量
靜態(tài)全局變量、全局變量的區(qū)別主要通過(guò)生存周期和作用域來(lái)區(qū)別。
全局變量靜態(tài)全局變量生存周期程序運(yùn)行到程序結(jié)束程序運(yùn)行開(kāi)始到程序結(jié)束作用域所有的代碼只有當(dāng)前文件可以訪問(wèn)代碼段中位置全局?jǐn)?shù)據(jù)區(qū)全局?jǐn)?shù)據(jù)區(qū)a.靜態(tài)全局變量和全局變量均存放在數(shù)據(jù)段.data中;b. 靜態(tài)局部變量在函數(shù)內(nèi)定義,生存期為整個(gè)源程序,但作用域與自動(dòng)變量相同,只能在定義該變量的函數(shù)內(nèi)使用。退出該函數(shù)后, 盡管該變量還繼續(xù)存在,但不能使用它。c. 對(duì)基本類(lèi)型的靜態(tài)局部變量若在說(shuō)明時(shí)未賦以初值,則系統(tǒng)自動(dòng)賦予0值。而對(duì)自動(dòng)變量不賦初值,則其值是不定的。d.全局變量本身就是靜態(tài)存儲(chǔ)方式, 靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲(chǔ)方式。但是他們的作用域,非靜態(tài)全局 變量的作用域是整個(gè)源程序(多個(gè)源文件可以共同使用);而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內(nèi)有效, 在同一源程序的其它源文件中不能使用它。全局變量實(shí)例
以下是b.c 和 a.c源代碼
全局變量
編譯
gcc a.c b.c
執(zhí)行結(jié)果:
執(zhí)行結(jié)果
由編譯結(jié)果可知,文件a.c可以訪問(wèn)到b.c文件中的靜態(tài)全局變量b。
靜態(tài)全局變量實(shí)例
編譯結(jié)果
編譯結(jié)果
由編譯結(jié)果可知,文件a.c無(wú)法訪問(wèn)到b.c文件中的靜態(tài)全局變量b,所以編譯報(bào)錯(cuò)。
2. 靜態(tài)局部變量、局部變量
靜態(tài)局部變量、局部變量的區(qū)別主要通過(guò)生存周期和作用域來(lái)區(qū)別。
局部變量靜態(tài)局部變量生存周期函數(shù)調(diào)用到函數(shù)返回程序運(yùn)行開(kāi)始到程序結(jié)束作用域函數(shù)內(nèi)部函數(shù)內(nèi)部代碼段中位置棧全局?jǐn)?shù)據(jù)區(qū)
靜態(tài)局部變量存放在數(shù)據(jù)段.data中,局部變量在棧中;靜態(tài)局部變量和局部變量都只能在函數(shù)體內(nèi)部才可以訪問(wèn)。
函數(shù)每次訪問(wèn)的靜態(tài)局部變量,該變量的值為最后一次訪問(wèn)修改后的值。
舉例:
1 #include <stdio.h>
2
3
4 void func()
5 {
6 int aa = 11;
7
8 printf("aa= %d ",aa++);
9
10 }
11
12 int main(int argc, char **argv)
13 {
14
15 func();
16 func();
17
18 return 0;
19 }

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車(chē)】汽車(chē)E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書(shū)】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專(zhuān)題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開(kāi)始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類(lèi)新物種登上歷史舞臺(tái)
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開(kāi)成長(zhǎng)空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?