Unix(Linux)C程式設計問題精粹(轉)
Unix(Linux)C程式設計問題精粹(轉)[@more@]對於C語言,有人認為它已經落伍了.對於這個問題,仁者見仕,智者見智.的確,C++比C有更強大的諸多優勢.但C++是建立在C之上的.這也是Herbert Schildt所著的<>在全世界暢銷不衰的原因.更何況,要深入學習LINUX就必需要有相當的C功底.(這也是我搜集整理本文的根由:-)
現結合個人在程式設計中的體會,為使新手少走彎路,為老手錦上添花,因此無論你是使用C或C++程式設計,也無論你是程式設計的初學者還是成熟的專業人員,均會發現,本文將會對你有所收益.當然,我盡力寫得清晰易懂,又不古板.
=======================================
|版權宣告:你可以自由複製與分發本文件 |
|如果你要修改本文件或提出更好建議,請 |
|先通知文章的作者。而不要僅在公告欄中 |
|貼出。因為作者可能漏看。無論如何,都 |
|須保留本宣告。 |
| |
| |
| |
=======================================
文章目錄
第一章:前言
第二章:約定
第三章:開始任務
第四章:使用lint
第五章:使用make
第六章:優質無錯程式設計
第七章:除錯技術
第八章:其它更好的文件
第一章:前言
你可以在forum.linuxaid.com.cn上獲得此帖的文字.而其HTML版本正在趕製之中......
如果你是在一個月之後看到本文,那麼此文或許已經更新了:-)
第二章:約定
專業的源程書寫風格.
先看看世界級C大師的源程書寫風格.如 Steve Maguire 就有許多不錯的建議.
[]倡導使用易於理解的"匈牙利式"的命名約定.
所有的字元變數均以ch開始; 如: char ch_****;
所有的位元組變數均冠以b; 如: byte b_****;
所有的長字變數均冠以l; 如: long l_****;
所有的指標變數均冠以P; 如: char *p_ch_****;
建議型別派生出的基本名字之後加上一個以大寫字母開頭的"標籤".如:
分析 char **ppchMydata;
其讓人一眼就能看出它代表一個指向字元指標Mydata的指標.
"匈牙利式"命名的最大不足是難念:-(( .但相對於不是總統演講稿的C源程來說,這又算得了什麼?想想看以下的資料命名:
char a,b,c;
long d,e,f;
.
.
.
(反正我是不會再看下去了...)
[]倡導規範書寫.
如果你思如泉湧,而不去也不及顧慮書寫格式,那也沒關係.在將其交出去之前,用cb命令格式化你的源程.雖然源程的格式不會影響到你編譯結果的正確性,但切記,能讓其他的程式設計師能輕鬆地閱讀它.否則沒人會理你的.
關於cb命令的更多用法,可以用man cb來參考其手冊頁.
當然除了cb之外,還有更多更好的.但cb是你在任何UNIX(LINUX)上都找得到的.更何況它並不差.
第三章:開始任務
開始任務之前,先做個深呼吸!
[]其他文件你準備好了嗎?
你是不是除了C源程之外一無所有了嗎?兵馬未動,糧草先行.你必須先清楚該程式所要完成的功能.在開始寫程式之前,對程式的功能應有規範說明.書寫規範書和確知程式功能的一個方法是先編寫相應的操作手冊.如果你是一人單幹,勸你首先寫需求書.切記切記,這對你意味著事半功倍的大好事.
一個例項:我計劃為本行的信貸子功能模組打一個補丁.我用10周的時間用來寫規劃書,需求書,操作流程,使用說明等等文件.之後用2周的時間編寫程式,在初步測試(1周)後遞交給各信貸部門測試使用.然後根據反饋的資訊再更改相應文件,並根據文件修改源程.6個月後釋出正式版.
[]一定該遵循ANSI標準嗎?
如果你僅使用ANSI的標準首標檔案,恭喜你,你的程式有著全世界範圍內的廣泛支援和相容.光明無限.但你必須在通用與專用之間做出取捨,對不起,我幫不了你.
我的原則是:核心用ANSI,介面按需而取.這樣在轉換平臺時僅需另編使用者介面而已.實用至上嘛.
附:ANSI 標準C標頭檔案
現結合個人在程式設計中的體會,為使新手少走彎路,為老手錦上添花,因此無論你是使用C或C++程式設計,也無論你是程式設計的初學者還是成熟的專業人員,均會發現,本文將會對你有所收益.當然,我盡力寫得清晰易懂,又不古板.
=======================================
|版權宣告:你可以自由複製與分發本文件 |
|如果你要修改本文件或提出更好建議,請 |
|先通知文章的作者。而不要僅在公告欄中 |
|貼出。因為作者可能漏看。無論如何,都 |
|須保留本宣告。 |
| |
| |
| |
=======================================
文章目錄
第一章:前言
第二章:約定
第三章:開始任務
第四章:使用lint
第五章:使用make
第六章:優質無錯程式設計
第七章:除錯技術
第八章:其它更好的文件
第一章:前言
你可以在forum.linuxaid.com.cn上獲得此帖的文字.而其HTML版本正在趕製之中......
如果你是在一個月之後看到本文,那麼此文或許已經更新了:-)
第二章:約定
專業的源程書寫風格.
先看看世界級C大師的源程書寫風格.如 Steve Maguire 就有許多不錯的建議.
[]倡導使用易於理解的"匈牙利式"的命名約定.
所有的字元變數均以ch開始; 如: char ch_****;
所有的位元組變數均冠以b; 如: byte b_****;
所有的長字變數均冠以l; 如: long l_****;
所有的指標變數均冠以P; 如: char *p_ch_****;
建議型別派生出的基本名字之後加上一個以大寫字母開頭的"標籤".如:
分析 char **ppchMydata;
其讓人一眼就能看出它代表一個指向字元指標Mydata的指標.
"匈牙利式"命名的最大不足是難念:-(( .但相對於不是總統演講稿的C源程來說,這又算得了什麼?想想看以下的資料命名:
char a,b,c;
long d,e,f;
.
.
.
(反正我是不會再看下去了...)
[]倡導規範書寫.
如果你思如泉湧,而不去也不及顧慮書寫格式,那也沒關係.在將其交出去之前,用cb命令格式化你的源程.雖然源程的格式不會影響到你編譯結果的正確性,但切記,能讓其他的程式設計師能輕鬆地閱讀它.否則沒人會理你的.
關於cb命令的更多用法,可以用man cb來參考其手冊頁.
當然除了cb之外,還有更多更好的.但cb是你在任何UNIX(LINUX)上都找得到的.更何況它並不差.
第三章:開始任務
開始任務之前,先做個深呼吸!
[]其他文件你準備好了嗎?
你是不是除了C源程之外一無所有了嗎?兵馬未動,糧草先行.你必須先清楚該程式所要完成的功能.在開始寫程式之前,對程式的功能應有規範說明.書寫規範書和確知程式功能的一個方法是先編寫相應的操作手冊.如果你是一人單幹,勸你首先寫需求書.切記切記,這對你意味著事半功倍的大好事.
一個例項:我計劃為本行的信貸子功能模組打一個補丁.我用10周的時間用來寫規劃書,需求書,操作流程,使用說明等等文件.之後用2周的時間編寫程式,在初步測試(1周)後遞交給各信貸部門測試使用.然後根據反饋的資訊再更改相應文件,並根據文件修改源程.6個月後釋出正式版.
[]一定該遵循ANSI標準嗎?
如果你僅使用ANSI的標準首標檔案,恭喜你,你的程式有著全世界範圍內的廣泛支援和相容.光明無限.但你必須在通用與專用之間做出取捨,對不起,我幫不了你.
我的原則是:核心用ANSI,介面按需而取.這樣在轉換平臺時僅需另編使用者介面而已.實用至上嘛.
附:ANSI 標準C標頭檔案
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-947579/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Unix(Linux) C程式設計問題精粹 (轉)LinuxC程式程式設計
- Unix(Linux) C程式設計問題精粹(轉)LinuxC程式程式設計
- C 語言程式設計(unix) (轉)程式設計
- VB的API程式設計精粹(1) (轉)API程式設計
- VB的API程式設計精粹(二) (轉)API程式設計
- Linux_FAQ:程式設計問題(轉)Linux程式設計
- Unix程式設計/應用問答中文版 ---20.shell script問題(轉)程式設計
- Unix程式設計/應用問答中文版 ---19.終端相關問題(轉)程式設計
- Unix程式設計/應用問答中文版 ---21.FreeBSD相關問題(轉)程式設計
- Unix程式設計/應用問答中文版 ---1.系統管理配置問題(轉)程式設計
- Unix程式設計/應用問答中文版 ---12.日誌相關問題 13.程式相關問題(轉)程式設計
- 《LINUX與UNIX SHELL程式設計指南》讀書筆記(轉)Linux程式設計筆記
- Linux下C語言程式設計(轉)LinuxC語言程式設計
- Unix程式設計/應用問答中文版 ---4.系統資源相關問題(轉)程式設計
- 《Unix 網路程式設計》05:TCP C/S 程式示例程式設計TCP
- Linux/Unix C程式設計之的perror函式,strerror函式,errnoLinuxC程式程式設計Error函式
- unix 2 windows 的C++程式移植的一些常見問題 (轉)WindowsC++
- C程式設計題C程式程式設計
- Linux程式設計:程式同步問題之哲學家就餐問題Linux程式設計
- Unix程式設計/應用問答中文版 ---17.檔案檢視問題 18.補丁相關問題(轉)程式設計
- linux/unix程式設計手冊-16_20Linux程式設計
- Unix哲學(Unix程式設計藝術)程式設計
- Unix程式設計藝術,Unix哲學程式設計
- Linux下C語言程式設計簡介(轉)LinuxC語言程式設計
- 【LINUX 學習】使用find和xargs[轉摘自《shell程式設計和unix命令》]Linux程式設計
- Unix/Linux環境C程式設計入門教程(30) 字串操作那些事兒LinuxC程式程式設計字串
- linux下c程式設計中的DOS攻擊程式(轉)LinuxC程式程式設計
- [Linux C]CGI程式設計Linux程式設計
- Linux 程式設計之Shell程式設計(轉)Linux程式設計
- 程式碼設計問題
- Linux TCP程式設計常見問題考慮LinuxTCP程式設計
- 《Unix 網路程式設計》11:名字和地址轉換程式設計
- Unix/Linux環境C程式設計入門教程(27) 記憶體那些事兒LinuxC程式程式設計記憶體
- Unix/Linux環境C程式設計入門教程(28) 日期時間那些事兒LinuxC程式程式設計
- linux c網路網路程式設計面試題收集Linux程式設計面試題
- c語言程式設計題C語言程式設計
- 《unix環境高階程式設計》書中原始碼編譯問題解決程式設計原始碼編譯
- 從問題到程式 程式設計與C語言引論pdf程式設計C語言