關(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ū)別主要通過生存周期和作用域來區(qū)別。
全局變量靜態(tài)全局變量生存周期程序運(yùn)行到程序結(jié)束程序運(yùn)行開始到程序結(jié)束作用域所有的代碼只有當(dāng)前文件可以訪問代碼段中位置全局?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ì)基本類型的靜態(tài)局部變量若在說明時(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可以訪問到b.c文件中的靜態(tài)全局變量b。
靜態(tài)全局變量實(shí)例
編譯結(jié)果
編譯結(jié)果
由編譯結(jié)果可知,文件a.c無法訪問到b.c文件中的靜態(tài)全局變量b,所以編譯報(bào)錯(cuò)。
2. 靜態(tài)局部變量、局部變量
靜態(tài)局部變量、局部變量的區(qū)別主要通過生存周期和作用域來區(qū)別。
局部變量靜態(tài)局部變量生存周期函數(shù)調(diào)用到函數(shù)返回程序運(yùn)行開始到程序結(jié)束作用域函數(shù)內(nèi)部函數(shù)內(nèi)部代碼段中位置棧全局?jǐn)?shù)據(jù)區(qū)
靜態(tài)局部變量存放在數(shù)據(jù)段.data中,局部變量在棧中;靜態(tài)局部變量和局部變量都只能在函數(shù)體內(nèi)部才可以訪問。
函數(shù)每次訪問的靜態(tài)局部變量,該變量的值為最后一次訪問修改后的值。
舉例:
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)論長度6~500個(gè)字
最新活動(dòng)更多
-
即日-9.1立即下載>> 【限時(shí)下載】ADI中國三十周年感恩回饋助力企業(yè)升級(jí)!
-
即日-9.16點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國際物聯(lián)網(wǎng)展·深圳站
-
10月23日立即報(bào)名>> Works With 開發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
推薦專題
- 1 阿里首位程序員,“掃地僧”多隆已離職
- 2 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 3 宇樹機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 4 清華跑出具身智能獨(dú)角獸:給機(jī)器人安上眼睛和大腦,融資近20億
- 5 特朗普要求英特爾首位華人 CEO 辭職
- 6 踢館大廠和微軟,剖析WPS靈犀的AI實(shí)用主義
- 7 騰訊 Q2 財(cái)報(bào)亮眼:AI 已成第二增長曲線
- 8 谷歌吹響AI沖鋒號(hào),AI還有哪些機(jī)會(huì)
- 9 蘋果把身家押在Siri上:一場(chǎng)輸不起的自我革命
- 10 共探合作新機(jī)遇!江門市新會(huì)區(qū)(深圳)“AI + 機(jī)器人” 產(chǎn)業(yè)對(duì)接會(huì)成功舉辦