怎麼在linux學習c程式

2021-08-21 00:19:10 字數 1997 閱讀 7445

一、工具篇

「公欲善其事,必先利其器」。程式設計是一門實踐性很強的工作,在你以後的學習或工作中,你將常常會與以下工具打交道, 下面列出學習c語言程式設計常常用到的軟體和工具。

在unix或linux系統中學習c很方便,所以在開始您的學習旅程前請先選擇乙個unix或linux作業系統,

目前可供個人免費使用的unix或linux系統有freebsd、redhat linux、suse linux等,而且在安裝包中還提供很多實用的工具,如:gcc, make等。

如果您一直使用windows,身邊又沒有多餘的機器安裝unix,則可以使用vmware,通過vmware安裝虛擬系統。

編譯工具

目前絕大多數unix或lnux系統都提供cc或gcc編譯器,最簡單的cc命令格式如下:

cc -o hello hello.c

在unix shell環境中敲入上面的**會將hello.c程式編譯成可執行檔案hello。

如 gnu make、system v make 和 berkeley make 是用來組織應用程式編譯過程的基本工具,但是每個 make 工具之間又有所不同。

大部分unix和linux程式都是通過執行make來編譯的。

在你對程式的執行機制有了一定的了解後,你可以實用一些工具幫助你進行除錯,當然你得學習一下這些工具得使用,如:dbx,gdb等。

還有一些記憶體工具可以幫你查詢記憶體洩漏或緩衝區溢位等一些問題,如:memwatch,yamd等。

1)vi或vim

unix下文字編輯器。主要靠一堆命令來編輯文字檔案,學unix程式設計最好熟悉並熟練使用vi編輯器。

乙個支援ssh協議得客戶端工具,多數情況下用來連線linux系統。

二、書籍篇

「書是人類進步得階梯」。學習一門新的知識,當然要選擇幾本適合自己得書籍,下面介紹一些我自己學習c語言使用過的書籍:

1.《c primer plus》

推薦理由:適合作為入門書和基本函式查詢得參考資料。

本書最新版為第五版,以ansi c99為標準詳細介紹了c語言。

2.《the c programming_language》

3.《c 專家程式設計》

推薦理由:本書可以幫助有一定經驗的c程式設計師成為c程式設計方面的專家,最關鍵的是本書寓教於樂,讓你充分享受程式設計的樂趣。

4.《c缺陷與陷阱》

推薦理由:書中所揭示的知識能幫助您繞過c語言自身得陷阱和缺陷,減少**中許多常見的bug。

5.《unix環境高階程式設計》

6.《計算機程式設計藝術》

推薦理由:演算法大師得嘔心瀝血之作。計畫出版五卷書,目前好像已出版3卷。對演算法有興趣得可以研究一下。

三、過程篇

2.學習c標準庫

3.攻克c的難點

1)c語言宣告:

c語言的宣告確實讓我覺得恐怖,比較晦澀難懂,而且宣告的形式和使用的形式還類似。比如如下的宣告恐怕就連很多熟悉c多年的程式設計師也不是一眼就能看出來的:

char * const * (*next)();

那麼有沒有一種好的記憶方法或規則來搞清楚呢,好像沒有,如果有的話也不是這樣折磨人了。不過可以看看《c專家程式設計》第三章的內容,或許你會有所收穫。

也只能多學多練了,所謂熟能生巧嘛,希望這個問題不要在你的心靈上留下陰影。

2)陣列與指標:

3)指標與記憶體:

4)c版本的問題:

你得特別小心該問題,最好不要在你的程式中混合使用不同版本c的特性,否則會給你帶來很迷惑的問題。如果一定要用,你最好清楚自己在做什麼。

還有一些其他c中的難點和容易錯誤的地方,可以學習前人的一些經驗。以下是乙個c faq的鏈結位址,相信在這篇文件中有你需要的大部分問題的解決方法。

學習了以上內容之後,我相信,你就可以進行unix環境程式設計了。不過你可能需要對作業系統理論有一點點的了解,這樣學起來會比較輕鬆一些。

在紮實掌握以上內容,不代表你得c語言學習支路已經完成,相反,才剛剛開始。以後你需要用學到得知識去解決大量不同實際問題,在不斷得實踐過程中,你會近一步加深對c的理解。有了以上基礎之後,你會發現,在實踐過程中需要的其他知識,你會非常快速的掌握。

怎麼學習LINUX

首先你應該先裝上linux作業系統,開始時可以看看shell指令碼,不用太複雜的,差不多你就可以看看 etc rc.d 裡面的幾個檔案,熟悉啟動過程和所啟的服務,然後你就試著讓你機器可以上網,www.google.com對你以後的幫助是最大的 再之後就可以配置samba,ftp,http的伺服器了,...

在linux環境下編譯C 程式

下面是乙個儲存在檔案helloworld.cpp中乙個簡單的 c 程式的 單個原始檔生成可執行程式 helloworld.cpp include int main int argc,char argv 程式使用定義在標頭檔案 iostream 中的 cout,向標準輸出寫入乙個簡單的字串。該 可用以...

在linux下編譯執行C 程式

頭一回。把windows下的程式挪到linux下,見這篇隨筆 1 編譯zthread,使用.configure失敗,直接編譯的,方法還是上面提到的那篇隨筆 2 編譯原始碼,最開始用的cc,後來老是報undefined reference,甚至hello world程式也報undefined refe...