關(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)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
8月5日立即報(bào)名>> 【在線會(huì)議】CAE優(yōu)化設(shè)計(jì):醫(yī)療器械設(shè)計(jì)的應(yīng)用案例與方案解析
-
8月14日立即報(bào)名>> 【在線研討會(huì)】解析安森美(onsemi)高精度與超低功耗CGM系統(tǒng)解決方案
-
精彩回顧立即查看>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
-
精彩回顧立即查看>> 7月30日- 8月1日 2025全數(shù)會(huì)工業(yè)芯片與傳感儀表展
-
精彩回顧立即查看>> 全數(shù)會(huì)2025(第六屆)機(jī)器人及智能工廠展
-
精彩回顧立即查看>> OFweek 2025 具身機(jī)器人動(dòng)力電池技術(shù)應(yīng)用大會(huì)
推薦專題
- 1 AI產(chǎn)業(yè)的新高度!英偉達(dá)成為全球首家市值破4萬億美元的公司
- 2 傳魏建軍與賈躍亭合作,長(zhǎng)城汽車出海美國(guó)
- 3 一文讀懂:到底什么是 “具身智能” ?
- 4 黃仁勛:與雷軍長(zhǎng)期合作,共探AI智駕
- 5 具身智能泡沫爭(zhēng)議下,華映資本尋找「穿越周期者」
- 6 中國(guó)平安們欲靠AI守“陣地”
- 7 官宣:智元機(jī)器人借殼上市,A股人形機(jī)器人第一股!
- 8 華為讓渡“三界”銷售主導(dǎo)權(quán),智界高管:終于能全力奔跑了
- 9 借仿生手實(shí)現(xiàn)突圍,國(guó)產(chǎn)靈巧手破局“不可能三角”
- 10 DeepSeek R2加持,中國(guó)AI與芯片產(chǎn)業(yè)迎來新一輪協(xié)同進(jìn)化