資源描述:
《linuxc程序設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、LinuxC程序設(shè)計(jì)主要內(nèi)容Linux編程風(fēng)格Linux下IDE的使用(三種)Linux下使用GNUcc開發(fā)應(yīng)用程序Linux程序的調(diào)試12.1概述12.1.1Linux編程Linux軟件開發(fā)一直在Internet環(huán)境下進(jìn)行。這個(gè)環(huán)境是全球性的,編程人員來自世界各地。只要能夠訪問Web站點(diǎn),就可以啟動(dòng)一個(gè)以Linux為基礎(chǔ)的軟件項(xiàng)目。Linux開發(fā)工作經(jīng)常是在Linux用戶決定共同完成一個(gè)項(xiàng)目時(shí)開始的。當(dāng)開發(fā)工作完成后,該軟件就被放到Internet站點(diǎn)上,任何用戶都可以訪問和下載它。由于這個(gè)活躍的開發(fā)環(huán)境,新的以Linux為基礎(chǔ)的軟件功能日益強(qiáng)大,而且呈現(xiàn)爆炸
2、式的增長(zhǎng)態(tài)勢(shì)。大多數(shù)Linux軟件是經(jīng)過自由軟件基金會(huì)(FreeSoft-wareFoundation)提供的GNU(GNU即GNU’snotUNIX)公開認(rèn)證授權(quán)的,因而通常被稱作GNU軟件。GNU軟件免費(fèi)提供給用戶使用,并被證明是非??煽亢透咝У?。許多流行的Linux實(shí)用程序如C編譯器、shell和編輯器都是GNU軟件應(yīng)用程序。Linux程序需要首先轉(zhuǎn)化為低級(jí)機(jī)器語言即所謂的二進(jìn)制代碼以后,才能被操作系統(tǒng)執(zhí)行。例如編程時(shí),先用普通的編程語言生成一系列指令,這些指令可被翻譯為適當(dāng)?shù)目蓤?zhí)行應(yīng)用程序的二進(jìn)制代碼。這個(gè)翻譯過程可由解釋器一步步來完成,或者也可以立即由
3、編譯器明確地完成。shell編程語言如BASH、TCSH、GAWK、Perl、Tcl和Tk都利用自己的解釋器。用這些語言編制的程序盡管是應(yīng)用程序文件,但可以直接運(yùn)行。編譯器則不同,它將生成一個(gè)獨(dú)立的二進(jìn)制代碼文件然后才可以運(yùn)行。12.1.2Linux編程風(fēng)格(1)函數(shù)返回類型說明和函數(shù)名分兩行放置,函數(shù)起始字符和函數(shù)開頭左花括號(hào)放到最左邊。(2)盡量不要讓兩個(gè)不同優(yōu)先級(jí)的操作符出現(xiàn)在相同的對(duì)齊方式中,應(yīng)該附加額外的括號(hào)使得代碼縮進(jìn)可以表示出嵌套。(3)每個(gè)程序都應(yīng)該以一段簡(jiǎn)短的說明其功能的注釋開頭。(4)請(qǐng)為每個(gè)函數(shù)書寫注釋,說明函數(shù)是做什么的,需要哪些入口參數(shù)
4、,參數(shù)可能值的含義和用途。如果用了非常見的、非標(biāo)準(zhǔn)的東西,或者可能導(dǎo)致函數(shù)不能工作的任何可能的值,應(yīng)該進(jìn)行特殊說明。如果存在重要的返回值,也需要說明。(5)不要聲明多個(gè)變量時(shí)跨行,每一行都以一個(gè)新的聲明開頭。(6)當(dāng)一個(gè)if中嵌套了另一個(gè)if-else時(shí),應(yīng)用花括號(hào)把if-else括起來。(7)要在同一個(gè)聲明中同時(shí)說明結(jié)構(gòu)標(biāo)識(shí)和變量或者結(jié)構(gòu)標(biāo)識(shí)和類型定義(typedef)。先定義變量,再使用。1.GNU風(fēng)格(8)盡量避免在if的條件中進(jìn)行賦值。(9)請(qǐng)?jiān)诿种惺褂孟聞澗€以分割單詞,盡量使用小寫;把大寫字母留給宏和枚舉常量,以及根據(jù)統(tǒng)一慣例使用的前綴。例如,應(yīng)該使
5、用類似ignore_space_change_flag的名字;不要使用類似iCantReadThis的名字。(10)用于表明一個(gè)命令行選項(xiàng)是否給出的變量應(yīng)該在選項(xiàng)含義的說明之后,而不是選項(xiàng)字符之后被命名。2.Linux內(nèi)核編程風(fēng)格(1)Linux內(nèi)核縮進(jìn)風(fēng)格是8個(gè)字符。(2)Linux內(nèi)核風(fēng)格采用K&R標(biāo)準(zhǔn),將開始的大括號(hào)放在一行的最后,而將結(jié)束的大括號(hào)放在一行的第一位。(3)命名盡量簡(jiǎn)潔。不應(yīng)該使用諸如ThisVariableIsATemporaryCounter之類的名字。應(yīng)該命名為tmp,這樣容易書寫,也不難理解。但是命名全局變量,就應(yīng)該用描述性命名方式,
6、例如應(yīng)該命名“count_active_users()”,而不是“cntusr()”。本地變量應(yīng)該避免過長(zhǎng)。(4)函數(shù)最好短小精悍,一般來說不要讓函數(shù)的參數(shù)多于10個(gè),否則應(yīng)該嘗試分解這個(gè)過于復(fù)雜的函數(shù)。(5)通常情況,注釋說明代碼的功能,而不是其實(shí)現(xiàn)原理。避免把注釋插到函數(shù)體內(nèi),而寫到函數(shù)前面,說明其功能,如果這個(gè)函數(shù)的確很復(fù)雜,其中需要有部分注釋,可以寫些簡(jiǎn)短的注釋來說明那些重要的部分,但是不能過多。12.2IDE使用12.2.1VIM編輯器1.VIM的簡(jiǎn)介VI是Linux世界里最常用的全屏編輯器,所有的Linux機(jī)器都提供該編輯器,而Linux里提供的是V
7、I的加強(qiáng)版——VIM,但同VI是完全兼容。VI的原意是“visualinterface”,即可視編輯器,用戶鍵入的內(nèi)容會(huì)立即被顯示出來、而且其強(qiáng)大的編輯功能可以同任何一種最新的編輯器相媲美。它在Linux上的地位就仿佛Edit程序在DOS上一樣。它可以執(zhí)行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據(jù)需要對(duì)其進(jìn)行定制,這是其他編輯程序所沒有的。VI不是一個(gè)排版程序,不象Word或WPS那樣可以對(duì)字體、格式、段落等其他屬性進(jìn)行編排,它只是一個(gè)文本編輯程序。2.VIM的基本觀念VIM有三種操作方式,分別是:命令方式插入方式命令行方式3.VIM的進(jìn)入與
8、離開在系統(tǒng)提示符“$”下