




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1. 印第安序。2.內(nèi)存泄露的概念。指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存的情況。一般我們常說(shuō)的內(nèi)存泄漏是指堆內(nèi)存的泄漏3.斷言的概念:用于為程序增加診斷功能。Assert,編寫(xiě)代碼時(shí),我們總是會(huì)做出一些假設(shè),斷言就是用于在代碼中捕捉這些假設(shè)。4.函數(shù)重入的概念、什么情況會(huì)造成函數(shù)的重入、互斥保護(hù):關(guān)中斷,禁止做認(rèn)為切換,利用。信號(hào)量?那些被重入后依然可以正確執(zhí)行的函數(shù)稱為可重入函數(shù)。所謂可重入函數(shù)是指一個(gè)可以被多個(gè)任務(wù)調(diào)用的過(guò)程,任務(wù)在調(diào)用時(shí)不必?fù)?dān)心數(shù)據(jù)是否會(huì)出錯(cuò)。中斷調(diào)用引起函數(shù)重入:另一個(gè)任務(wù)調(diào)用引起函數(shù)重入:遞歸調(diào)用引起函數(shù)重入。5.中斷服務(wù)程序的特點(diǎn)及其注意事項(xiàng)。* 不能
2、返回值* 不能向ISR傳遞參數(shù)* ISR應(yīng)該盡可能的短小精悍* printf(char *ipFormatString,函數(shù)會(huì)帶來(lái)重入和性能的問(wèn)題,不能在ISR中使用。(在ARM平臺(tái)上由于半主機(jī)機(jī)制,速度會(huì)更慢!* 其他不可能重入的函數(shù)不可使用* 耗時(shí)的函數(shù)避免調(diào)用* 大量的運(yùn)算盡量避免6.調(diào)用棧幀和中斷棧幀結(jié)構(gòu)(作業(yè)先壓參數(shù);再壓程序的返回地址;接著,將Callee中可能用到的寄存器的值保存;最后保存被調(diào)函數(shù)(Callee中使用到的臨時(shí)(局部變量:調(diào)用棧幀中斷棧幀:調(diào)用+除了要保存返回地址,還需要保存中斷前的程序狀態(tài)字(PSR;中斷處理程序沒(méi)有人工入口參數(shù),因此中斷棧幀中也沒(méi)有所傳遞的參數(shù)。
3、7.指針的偏移,不同類型偏移不同的字節(jié)數(shù);指針變量所占的內(nèi)存大小.指針的基本偏移就是地址自加之后和原地址的差。在一般情況下,這個(gè)差是由指針類型決定的,char的基本偏移是1個(gè)字節(jié),int是4個(gè)字節(jié)(32bit機(jī)中,比如int *p,p+1和p的物理地址差是4個(gè)字節(jié),對(duì)于數(shù)組int a3,情況就少?gòu)?fù)雜,在使用中a是作為指針調(diào)用的, a的基本偏移是4個(gè)字節(jié),但是你還可以對(duì)a進(jìn)行如下操作&a,這個(gè)結(jié)果也是一個(gè)指針,所指向的地址跟a一樣(數(shù)組首地址,但是基本偏移是不同的,這個(gè)偏移等于sizeof(int*3,即3×4=12(其實(shí)就是sizeof(a字節(jié),加一后,它直接指向數(shù)組后面(已
4、經(jīng)在數(shù)組外了。考慮二維數(shù)組的話,你會(huì)發(fā)現(xiàn)更好的結(jié)果,比如int a37,行寬是7,a的基本偏移就是4×7字節(jié),*a是4字節(jié),*a已經(jīng)不是地址,它指向數(shù)組的元素,再看&a,跟一維的情況一樣它指向數(shù)組后,偏移是4×7×3(即sizeof(a。值得注意的是:以上對(duì)于數(shù)組的情況不適用于一般的指針,指針?biāo)坪踔挥袉螌哟蔚钠?而數(shù)組的作為指針引用的時(shí)候,偏移卻是多層的。編譯器似乎給了數(shù)組而外的屬性,sizeof對(duì)數(shù)組的作用和對(duì)指針的作用是完全不同的。在使用指針對(duì)數(shù)組引用的時(shí)候(僅用數(shù)組名,會(huì)有很多額外的屬性,而指針試圖像數(shù)組般引用確實(shí)很困難的。int a=1,b=2;
5、float x=3.4, y = 4 . 5 ;double m=3.124;char ch1='a', ch2='b'不同數(shù)據(jù)類型的變量在內(nèi)存中占用的空間讓我們先看一下編譯系統(tǒng)是怎樣為變量分配內(nèi)存的。變量a,b是整型變量,在內(nèi)存各占2個(gè)字節(jié);x,y是實(shí)型,各占4個(gè)字節(jié);m是雙精度實(shí)型,占8個(gè)字節(jié);ch1,ch2是字符型,各占1個(gè)字節(jié)指針4個(gè)字節(jié)指針變量所占內(nèi)存空間都是2個(gè)字節(jié)8.各種不同類型變量的存儲(chǔ)位置、作用域及其生命周期。變量存儲(chǔ)類:局部變量,自動(dòng)類auto、寄存器類register、全局變量,靜態(tài)類static 和外部類extern。關(guān)鍵字auto加在變
6、量名及其類型前,用來(lái)說(shuō)明它是自動(dòng)變量。局部變量是指在函數(shù)內(nèi)部說(shuō)明的變量(有時(shí)也稱為自動(dòng)變量。用關(guān)鍵字auto進(jìn)行說(shuō)明, 當(dāng)auto省略時(shí), 所有的非全程變量都被認(rèn)為是局部變量, 所以auto實(shí)際上從來(lái)不用。局部變量在函數(shù)調(diào)用時(shí)自動(dòng)產(chǎn)生, 但不會(huì)自動(dòng)初始化, 隨函數(shù)調(diào)用的結(jié)束, 這個(gè)變量也就自動(dòng)消失了, 下次調(diào)用此函數(shù)時(shí)再自動(dòng)產(chǎn)生, 還要再賦值, 退出時(shí)又自動(dòng)消失。所有的全局變量和靜態(tài)局部變量(定義時(shí)使用關(guān)鍵字static都保存在靜態(tài)存儲(chǔ)區(qū),其特點(diǎn)是:在編譯時(shí)分配內(nèi)存空間并進(jìn)行初始化。在程序運(yùn)行期間,變量一直存在,直到程序結(jié)束,變量對(duì)應(yīng)的內(nèi)存空間才被釋放而所有的非靜態(tài)局部變量(又稱為自動(dòng)變量保存
7、在棧(stack中,其特點(diǎn)是:在變量所在的函數(shù)或模塊被執(zhí)行時(shí)動(dòng)態(tài)創(chuàng)建,函數(shù)或模塊執(zhí)行完時(shí),變量對(duì)應(yīng)的內(nèi)存空間被釋放。換句話說(shuō),函數(shù)或模塊每被執(zhí)行一次,局部變量就會(huì)重新被分配空間。如果變量定義時(shí)沒(méi)有初始化,那么變量中的值是隨機(jī)所有用malloc分配的內(nèi)存(又稱為動(dòng)態(tài)內(nèi)存都在堆(heap中,其特點(diǎn)是:一般通過(guò)指針來(lái)訪問(wèn)動(dòng)態(tài)分配的內(nèi)存。即可以通過(guò)free來(lái)手動(dòng)釋放動(dòng)態(tài)內(nèi)存,也可以在程序結(jié)束時(shí)由系統(tǒng)自動(dòng)釋放全局變量的作用域從定義點(diǎn)開(kāi)始一直到源文件的結(jié)束。如果要在定義點(diǎn)之前使用全局變量的話就需要使用關(guān)鍵字extern對(duì)作用域進(jìn)行擴(kuò)展。全局變量缺省是可以被其他文件引用的。如果希望static僅限于本文件使
8、用的話,需要在定義時(shí)使用關(guān)鍵字static對(duì)于局部變量來(lái)說(shuō),無(wú)論是靜態(tài)局部變量還是自動(dòng)變量,作用域都僅限于定義該變量的函數(shù)或模塊動(dòng)態(tài)內(nèi)存只要沒(méi)有被釋放就可以在程序的任何地方使用,前提是要知道動(dòng)態(tài)內(nèi)存的地址注:static加在全局變量前影響的是作用域,加在局部變量前影響的是生命周期9.static、extern、volatile、const、typedef關(guān)鍵字的特點(diǎn)和使用。10.5級(jí)存儲(chǔ)體系中各級(jí)存儲(chǔ)的名字、訪問(wèn)速度。往上內(nèi)存小,速度快寄存器高速緩存SRAM主存儲(chǔ)器DRAM本地存儲(chǔ)器Flash,ROM,磁盤(pán)網(wǎng)絡(luò)存儲(chǔ)器Flash,ROM,磁盤(pán)11.編譯的幾個(gè)階段分別是?編譯預(yù)處理;編譯階段;優(yōu)化階段;匯編階段;連接階段。12.動(dòng)態(tài)內(nèi)存釋放時(shí),為何只需要提供內(nèi)存首指針,而不需要提供需要釋放的大小?頭部至少包含要?jiǎng)討B(tài)內(nèi)存釋放大小。13.makefile文件依賴的作用。14.char* pch
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中考語(yǔ)文一輪復(fù)習(xí):應(yīng)用文 練習(xí)題(含答案)
- 電梯清洗抱閘施工方案
- 2025年中考語(yǔ)文寫(xiě)作復(fù)習(xí):備考作文主題《山花爛漫時(shí)》演繹張桂梅的“燃燈精神”
- 石材露臺(tái)改造施工方案
- 市政防滑路面施工方案
- 2025年法律援助測(cè)試題及答案
- 低介電常數(shù)聚酰亞胺
- 4年級(jí)下冊(cè)英語(yǔ)手抄報(bào)1到5單元
- 4-庚氧基-1-丁醇用途
- 鋼塑門(mén)施工方案
- SL176-2007《水利水電工程施工質(zhì)量檢驗(yàn)與評(píng)定規(guī)程》
- 挖掘機(jī)液壓原理動(dòng)作分解
- 腹部CT應(yīng)用入門(mén)
- 2019版外研社高中英語(yǔ)選擇性必修二Unit 1 Growing up 單詞表
- 路基接觸網(wǎng)基礎(chǔ)技術(shù)交底
- (高清版)輻射供暖供冷技術(shù)規(guī)程JGJ142-2012
- JTT 1295—2019道路大型物件運(yùn)輸規(guī)范_(高清-最新)
- 土壤固化土施工技術(shù)導(dǎo)則
- VAR模型Johansen協(xié)整檢驗(yàn)在eviews中的具體操作步驟及結(jié)果解釋
- 冷凍面團(tuán)項(xiàng)目市場(chǎng)分析
- 加油站法律法規(guī)符合性評(píng)價(jià)
評(píng)論
0/150
提交評(píng)論