(管理制度)C語言編程要點(diǎn)第章程序的編寫和編譯_第1頁
(管理制度)C語言編程要點(diǎn)第章程序的編寫和編譯_第2頁
(管理制度)C語言編程要點(diǎn)第章程序的編寫和編譯_第3頁
(管理制度)C語言編程要點(diǎn)第章程序的編寫和編譯_第4頁
(管理制度)C語言編程要點(diǎn)第章程序的編寫和編譯_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

(管理制度)C語言編程要點(diǎn)第章程序的編寫和編譯請參見:18.3.最常使用的存儲模式有哪些?很少被使用。請參見:18.4.應(yīng)該使用哪種存儲模式?寫商用軟件。態(tài)數(shù)據(jù)。記住,數(shù)組和其它程序結(jié)構(gòu)可通過malloc()和calloc()在程序運(yùn)行時(shí)進(jìn)行動(dòng)態(tài)分配,它們在本質(zhì)上并不必須是靜態(tài)的。請參見:請參見:得多。文件快。程堆中分配內(nèi)存。請參見:文件中未定義的函數(shù)。當(dāng)它找到一個(gè)未定義的外部函數(shù)后,它會引入包含該函數(shù)定義的目標(biāo)代碼。(obj)。你的可執(zhí)行代碼中將包含一些不需要的代碼。因此,將庫函數(shù)放到各自的源文件中是很重要的——否則會程序。一個(gè)庫中。{...}{...}voidfunc_three(){...}且把它連接進(jìn)來。不幸的是,函數(shù)func_one()是在包含func_two()函數(shù)定義的同一個(gè)源文件中被編譯的,的目標(biāo)代碼會被連接進(jìn)來,因?yàn)樵摵瘮?shù)是在它自己的源文件中被編譯的。要維護(hù)的函數(shù),那么這些函數(shù)就無法發(fā)放給其它小組成員,因?yàn)樗鼈儼谝粋€(gè)源文件中。請參見:18.8.可以把多個(gè)庫函數(shù)包含在同一個(gè)源文件中嗎?在同一個(gè)源文件中,你想要定義多少個(gè)函數(shù),就可以定義多個(gè)函數(shù),并且可以把它們都包含到一個(gè)庫中——然而,在小組開發(fā)環(huán)境中連接程序和共當(dāng)你在一個(gè)源文件中包含多個(gè)庫函數(shù)時(shí),這些函數(shù)會被編譯到其中的一個(gè)函數(shù)連接到程序中去時(shí),目標(biāo)文件中的所有函數(shù)都將被連接進(jìn)來---不管程序是否用到它們。如一個(gè)函數(shù),而不必先鎖住源文件中的一些函數(shù),然后才能修改源文件中的其它函數(shù)。請參見:18.9.為什么要建立一個(gè)庫?地方而不是幾個(gè)分散的地方維護(hù)你的函數(shù)。個(gè)模塊的大項(xiàng)目中,可以把那些自始至終都要用到的“框架”支持函數(shù)包含到請參見:地方而不是幾個(gè)分散的地方維護(hù)你的函數(shù)。個(gè)模塊的大項(xiàng)目中,可以把那些自始至終都要用到的“框架”支持函數(shù)包含到請參見:18.10.如果一個(gè)程序包含多個(gè)源文件,怎樣使它們都能正常工作?utility.obj:utility.cmyapp.hcl-cutility.cmyapp,exe:myapp.objutility.objclmyapp.objutility.obj才會被重新連接。譯程序文檔。成環(huán)境會為你記錄所有的源文件依賴關(guān)系。請參見:?減少一些全局變量;?減少程序的棧;?用動(dòng)態(tài)存儲分配技術(shù)為數(shù)據(jù)元素分配動(dòng)態(tài)內(nèi)態(tài),而不把它們定義為靜態(tài)型或全局型;?把數(shù)據(jù)元素說明為遠(yuǎn)程型而不是近程型。請參見:18.15近程型(near)和遠(yuǎn)程型(far)的區(qū)別是什么?18.12.怎術(shù)防止程序用盡內(nèi)存?如果你使用了大量的靜態(tài)數(shù)據(jù),那么你應(yīng)該考慮使用動(dòng)態(tài)內(nèi)存分配技術(shù)。通過使用動(dòng)態(tài)內(nèi)存分配技術(shù)(即使用malloc()和calloc()函數(shù)),你可以在需要時(shí)動(dòng)態(tài)地分配內(nèi)存,在不需要時(shí)釋放內(nèi)存。這種方法有幾個(gè)好的內(nèi)存空間。這樣,靜態(tài)和全局變量就不會占用大量的空間。其次,你可以通過檢查malloc()和calloc()函數(shù)的返回值來掌握內(nèi)存不足的情況。請參見:18.15近程型(near)和遠(yuǎn)程型(far)的區(qū)別是什么?方式去精心調(diào)整覆蓋模塊。使用覆蓋管理程序時(shí),一般不需要修改源代碼,在大多數(shù)情況下,使用覆蓋管理程序?qū)Τ绦騺碚f是透明的。請參見:18.15近程型(near)和遠(yuǎn)程型(far)的區(qū)別是什么?數(shù)組、結(jié)構(gòu)等)寫到磁盤上,并把它們原來占用的內(nèi)存空間釋放掉(使用free()函數(shù)),從而使程序獲得更多的數(shù)據(jù)從磁盤上讀到內(nèi)存中。遺憾的是,這種辦法要求編寫大量的代碼,而且實(shí)現(xiàn)起來比較麻煩。存和擴(kuò)展內(nèi)存提供一個(gè)交換空間。的使用極為普遍。使用擴(kuò)充內(nèi)存技術(shù)比使用擴(kuò)展內(nèi)存技術(shù)要慢一些。已經(jīng)放棄了舊的擴(kuò)充內(nèi)存技術(shù),而使用了新的擴(kuò)展內(nèi)存技術(shù)。在使用擴(kuò)展內(nèi)存時(shí),你的程序?qū)@得更高的穩(wěn)定性和執(zhí)行速度。一項(xiàng)技術(shù)的具體用法。請參見:18.15近程型(near)和遠(yuǎn)程型(far)的區(qū)別是什么?18.15.近程型(near)和遠(yuǎn)程型(far)的區(qū)別是什么?的近程型數(shù)據(jù):voidmain(void);{char*near_data;near_data=(char*)malloc((32*1024)*sizeof(char));{printf("Whoopsie!Mallocfailed!\n");exit(l);}strcpy(near_data,"Thisstringisgoingtobe.storedinthenearheap");printf("Addressofnear_data:%P\n",,&near_data);free(near_data);}位于缺省數(shù)據(jù)段(第一個(gè)64KB數(shù)據(jù)段)以外的數(shù)據(jù)。下例中的程序從遠(yuǎn)程型數(shù)據(jù)區(qū)(通常也叫做遠(yuǎn)程堆)中分voidmain(void);{charfar*far_data;far_data=(charfar*)farmalloc((32*1024)*sizeof(char));if(fardata==(charfar*)NULL){printf("Whoopsie!Farmallocfailed!\n");exit(1);}fstrcpy(fardata,"Thisstringisgoingtobestoredinthefarheap");printf("Addressoffar_data:%Fp\n",&far_data);farfree(far_data);}飾符(far)。此外,你還要注意,從

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論