關(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ì)基本類型的靜態(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è)字
圖片新聞
-

落地?zé)o錫!京東首個(gè)物流機(jī)器人超級(jí)工廠來(lái)了
-

OpenAI發(fā)布的AI瀏覽器,市場(chǎng)為何反應(yīng)強(qiáng)烈?
-

馬云重返一線督戰(zhàn),阿里重啟創(chuàng)始人模式
-

機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-

存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-

長(zhǎng)安汽車母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-

豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-

字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
最新活動(dòng)更多
-
即日-5.20立即下載>> 【限時(shí)免費(fèi)】物理場(chǎng)仿真助力生物醫(yī)學(xué)領(lǐng)域技術(shù)創(chuàng)新
-
精彩回顧立即查看>> 【直播】 智測(cè)未來(lái)·2026海克斯康春季產(chǎn)品創(chuàng)新日
-
精彩回顧立即查看>> 【線下論壇】新唐科技×芯唐南京 2026 年度研討會(huì)
-
精彩回顧立即查看>> OFweek 2026(第十五屆)中國(guó)機(jī)器人產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 維科杯· OFweek 2025中國(guó)機(jī)器人行業(yè)年度評(píng)選
-
精彩回顧立即查看>> 【在線會(huì)議】液冷服務(wù)器信號(hào)完整性及冷卻液關(guān)鍵電參數(shù)測(cè)試
推薦專題
- 1 AI狂歡遇上油價(jià)破百,全球股市還能漲多久? | 產(chǎn)聯(lián)看全球
- 2 OpenAI深夜王炸!ChatGPT Images 2.0實(shí)測(cè):中文穩(wěn)、細(xì)節(jié)炸,設(shè)計(jì)師慌了
- 3 6000億美元估值錨定:字節(jié)跳動(dòng)的“去單一化”突圍與估值重構(gòu)
- 4 Tesla AI5芯片最新進(jìn)展總結(jié)
- 5 連夜測(cè)了一波DeepSeek-V4,我發(fā)現(xiàn)它可能只剩“審美”這個(gè)短板了
- 6 熱點(diǎn)丨AI“瑜亮之爭(zhēng)”:既生OpenClaw,何生Hermes?
- 7 AI界的殺豬盤:9秒刪庫(kù)跑路,全員被封號(hào),還繼續(xù)扣錢!
- 8 2026,人形機(jī)器人只贏了面子
- 9 DeepSeek降價(jià)90%:價(jià)格屠夫不是身份,是戰(zhàn)略
- 10 AI Infra產(chǎn)業(yè)鏈卡在哪里了?
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市


分享





