理解Linux下C語言的學(xué)習(xí)路線
工具篇在學(xué)習(xí)或工作中,掌握適用的工具是非常重要的。對于Linux下的C語言編程,以下是常用的軟件和工具:1. 操作系統(tǒng):選擇一個UNIX或Linux操作系統(tǒng)進(jìn)行學(xué)習(xí),如FreeBSD、RedHat L
工具篇
在學(xué)習(xí)或工作中,掌握適用的工具是非常重要的。對于Linux下的C語言編程,以下是常用的軟件和工具:
1. 操作系統(tǒng):選擇一個UNIX或Linux操作系統(tǒng)進(jìn)行學(xué)習(xí),如FreeBSD、RedHat Linux、SUSE Linux等。這些系統(tǒng)不僅方便學(xué)習(xí)C語言,還提供了許多實用的工具,如gcc和make。
2. 編譯工具:大多數(shù)Unix或Linux系統(tǒng)都提供CC或GCC編譯器,可以使用cc命令將C程序編譯成可執(zhí)行文件。
3. make工具:GNU make、System V make和Berkeley make是組織應(yīng)用程序編譯過程的基本工具,大部分UNIX和Linux程序都是通過make來編譯的。
4. 調(diào)試工具:在對程序的運(yùn)行機(jī)制有一定了解后,可以使用調(diào)試工具進(jìn)行調(diào)試。例如,dbx和gdb是常用的調(diào)試工具,還有一些內(nèi)存工具如memwatch和yamd可以幫助查找問題。
5. 其他工具:
- vi或vim:Unix下的文本編輯器,熟悉并熟練使用vi編輯器對Unix編程非常有幫助。
- Secure shell/putty:支持ssh協(xié)議的客戶端工具,用于連接Linux系統(tǒng)。
過程篇
1. 學(xué)習(xí)C語法:對于具有編程底子的人來說,學(xué)習(xí)C語法相對輕松。即使以前沒有學(xué)習(xí)過其他編程語言,經(jīng)過兩個星期的學(xué)習(xí),也能掌握C語言。注意不要糾纏于語言細(xì)節(jié),如運(yùn)算符優(yōu)先級和結(jié)合性問題。
2. 學(xué)習(xí)C標(biāo)準(zhǔn)庫:ANSI C庫把函數(shù)分為不同的組,每個組都有相關(guān)的頭文件。重點學(xué)習(xí)以下庫:ctype.h(字符處理)、math.h(數(shù)學(xué)庫)、stdio.h(標(biāo)準(zhǔn)I/O庫)、stdlib.h(通用工具庫)、string.h(字符串處理)和time.h(時間和日期)??梢再徺I相關(guān)書籍了解完整的ANSI C庫。
3. 攻克C的難點:
- C語言聲明:C語言的聲明相對晦澀難懂,需要多學(xué)多練。參考《C專家編程》第三章內(nèi)容,多實踐并培養(yǎng)熟練度。
- 數(shù)組與指針:數(shù)組與指針的關(guān)系沒有在標(biāo)準(zhǔn)中作詳細(xì)規(guī)定,容易造成誤解。參考《C缺陷與陷阱》和《C專家編程》相關(guān)章節(jié),深入理解此問題。
- 指針與內(nèi)存:對于規(guī)模較大的程序,指針與內(nèi)存可能是最大的煩惱之一。需要學(xué)習(xí)相關(guān)工具和技術(shù),如內(nèi)存泄漏和緩沖區(qū)溢出的處理方法。
- C版本的問題:在程序中不要混合使用不同版本C的特性,以免造成迷惑。如果必須使用,要清楚自己在做什么。參考其他C中的難點和常見錯誤,學(xué)習(xí)前人的經(jīng)驗。
UNIX環(huán)境編程
掌握以上內(nèi)容后,可以進(jìn)行UNIX環(huán)境編程。同時需要了解一定的操作系統(tǒng)理論,這樣學(xué)起來會更輕松。Unix環(huán)境編程主要涉及IO和進(jìn)程兩個方面。推薦閱讀《Unix環(huán)境高級編程》,該書詳細(xì)討論了Unix環(huán)境編程,并提供了許多實用的例子程序。在扎實掌握基礎(chǔ)知識后,可以通過實踐解決更多實際問題,進(jìn)一步加深對C語言的理解。在實踐過程中,還會快速掌握其他所需知識。