溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

學(xué)習(xí)c語(yǔ)言的方法

發(fā)布時(shí)間:2021-03-04 14:57:42 來(lái)源:億速云 閱讀:175 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)學(xué)習(xí)c語(yǔ)言的方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

  學(xué)習(xí)C語(yǔ)言不要心急,要循序漸進(jìn),須知欲速則不達(dá)的道理。千萬(wàn)不要盲目的寫(xiě)大量的代碼,這樣做只會(huì)堆出大量的低檔次代碼,同時(shí)使你形成不好的代碼習(xí)慣。先買本基礎(chǔ)的教材來(lái)看看,使得對(duì)C語(yǔ)言有個(gè)初步的認(rèn)識(shí)。

  如果你的身邊有高水平的開(kāi)發(fā)人員,那么再好不過(guò)了,多多向別人請(qǐng)教。但是就我了解的情況來(lái)看,大部分的初學(xué)者并沒(méi)有在進(jìn)入IT行業(yè)后得到一個(gè)資深的軟件工程師的指導(dǎo),而恰恰是在入司后就被推向前線,替老板們騙取客戶口袋里的錢,在這個(gè)過(guò)程中很多人都是在苦苦的堆代碼,賺著可憐的薪資。盡管我也是在拿著可憐的錢,但是有一點(diǎn)我是幸運(yùn)的,因?yàn)槲以谖业牡谝患夜纠镉龅搅藥ьI(lǐng)我走向Unix和C語(yǔ)言領(lǐng)域的導(dǎo)師,正是他的一句“Unix和C語(yǔ)言是你一生都要去學(xué)習(xí)的技術(shù)”讓我狂熱的愛(ài)上了它們,正是他的一句“你有root口令,并不是你有root口令這么簡(jiǎn)單,更多的是一種責(zé)任”(說(shuō)這句話的前提是我用root口令進(jìn)入SUN服務(wù)器后刪除了別人的東西,因?yàn)槲艺J(rèn)為這些是無(wú)用的東西)使我對(duì)責(zé)任這兩個(gè)字有一個(gè)非常具體的認(rèn)識(shí)。所以在這里請(qǐng)廣大讀者允許我用一些篇幅來(lái)對(duì)我neusoft的導(dǎo)師yuhj表示深深的感謝。同時(shí)也對(duì)CU的朋友們表示深深的感謝,可以說(shuō),你們是我的第二導(dǎo)師,我已經(jīng)離不開(kāi)你們了。

  希望大家都比我幸運(yùn),沒(méi)有得到幸運(yùn)之神垂青的朋友們也不要灰心,多上CU上來(lái)和大家交流交流,討論討論吧,但是注意在論壇上討論的時(shí)候不要刨根問(wèn)底,很多事情不是一句話就說(shuō)的清楚的,別人只能給你一個(gè)指引,再具體的只有靠自己多研究研究、琢磨琢磨。閑暇的時(shí)候去精華區(qū)看看,你會(huì)有意外的收獲的。

  千萬(wàn)不要一看到英文就頭大,盡管我也是這樣,并不是看不懂(畢竟也接受過(guò)CET4、6級(jí)啞巴英語(yǔ)的教育,還是能看懂的)。man的幫助是最好的教材并且很多國(guó)外的論壇對(duì)技術(shù)的描述是很清楚的,也是很簡(jiǎn)單的,更重要的是,你會(huì)在上面看到些在國(guó)內(nèi)論壇上看不到的東西(計(jì)算機(jī)的技術(shù)一直都是由西方向東方傳遞,希望有朝一日老外都到我們中國(guó)的論壇上來(lái)尋找技術(shù)資料)。

  學(xué)習(xí)C語(yǔ)言有一件事情也是必須要學(xué)的,而且最好是同時(shí)學(xué),有的朋友可能已經(jīng)猜出來(lái)了,沒(méi)錯(cuò),是Unix。Unix和C語(yǔ)言可以說(shuō)大家提的很多了,有Unix的地方就有C語(yǔ)言,同時(shí)也正是有了C語(yǔ)言,才有了Unix(我們還是先討論討論雞生蛋還是蛋生雞的哲學(xué)問(wèn)題吧,誰(shuí)拿西紅柿打我),甚至有人說(shuō)C語(yǔ)言就是為了Unix而設(shè)計(jì)的,可見(jiàn)Unix和C語(yǔ)言之間的非同尋常的關(guān)系。學(xué)習(xí)Unix現(xiàn)在容易多了,以前Unix都是運(yùn)行在大型的服務(wù)器上的,可是現(xiàn)在有了Linux(按照GNU的意思,Linux就是Linux還不能叫Unix),大家可以在自己的PC上裝一套Linux來(lái)學(xué)習(xí),注意學(xué)習(xí)Linux不要拿Linux和Windows來(lái)比較,它們不可同日而語(yǔ)。Linux會(huì)讓你知道什么是經(jīng)典,永遠(yuǎn)讓你在一個(gè)方向上大展宏圖,Windows只會(huì)讓你在別人的套子里耍上大刀,不時(shí)的還要換一個(gè)套子耍耍。下面羅列了一些我在學(xué)習(xí)Unix的一些經(jīng)驗(yàn):

  1、學(xué)習(xí)Unix和C語(yǔ)言,先向大家推薦一本書(shū)《Unix高級(jí)環(huán)境編程》,這本書(shū)是學(xué)習(xí)Unix和C的經(jīng)典之作,盡量把書(shū)中提到的系統(tǒng)調(diào)用都寫(xiě)個(gè)練習(xí)程序,先感性的認(rèn)識(shí)一下Linux系統(tǒng)提供給用戶的系統(tǒng)調(diào)用都是干什么的,怎么用。系統(tǒng)調(diào)用是內(nèi)核提供給用戶的功能用以申請(qǐng)內(nèi)核服務(wù),對(duì)于Linux內(nèi)核的學(xué)習(xí),從系統(tǒng)調(diào)用入手是個(gè)不錯(cuò)的辦法。學(xué)習(xí)過(guò)程可以參看Linux的聯(lián)機(jī)幫助,和網(wǎng)絡(luò)上的資料。當(dāng)你覺(jué)得差不多了的時(shí)候,那我給大家出一道聯(lián)系題目吧:實(shí)現(xiàn)一個(gè)ftp服務(wù)器和客戶端的功能,完全可以自己定義一些應(yīng)用層的協(xié)議,只要能實(shí)現(xiàn)用簡(jiǎn)單的命令傳輸文件就可以了。

  這個(gè)題目可以使你練習(xí)到TCP/IP的基本編程方法和文件操作的基本方法對(duì)于后面學(xué)習(xí)內(nèi)核的文件系統(tǒng)會(huì)有幫助的。

  2、當(dāng)你對(duì)Unix系統(tǒng)有了些了解后,同時(shí)對(duì)于大部分的系統(tǒng)調(diào)用(關(guān)鍵是關(guān)于文件的系統(tǒng)調(diào)用,對(duì)于Linux系統(tǒng)的內(nèi)核來(lái)說(shuō)從文件系統(tǒng)入手相對(duì)容易一些)也有了清楚的認(rèn)識(shí)后,再推薦你一本書(shū)《Linux內(nèi)核情景分析》,該書(shū)是關(guān)于Linux內(nèi)核的經(jīng)典之作唯一美中不足的是沒(méi)有關(guān)于網(wǎng)絡(luò)子系統(tǒng)的詳細(xì)介紹。你可以從文件系統(tǒng)的系統(tǒng)調(diào)用入手,慢慢的你就會(huì)對(duì)Linux有了一個(gè)更深入的認(rèn)識(shí)。同時(shí)注意很多經(jīng)典的方法和思想在Linux中的運(yùn)用。你會(huì)認(rèn)識(shí)到為什么Unix把所有的東西都看成文件,對(duì)什么東西操作都是對(duì)文件操作,你會(huì)慢慢體會(huì)到Unix的經(jīng)典之處了。

  3、當(dāng)你對(duì)Linux內(nèi)核有了些了解后,你就可以找個(gè)方向來(lái)專門發(fā)展了,如果你想對(duì)眼下流行的網(wǎng)絡(luò)編程感興趣,那么再推薦你一本書(shū)《TCP/IP詳細(xì)解釋》,這本書(shū)是關(guān)于TCP/IP協(xié)議的經(jīng)典之作。你會(huì)學(xué)習(xí)到TCP/IP協(xié)議棧是如果實(shí)現(xiàn)的,為什么,各層協(xié)議之間是如何工作的。你看完了這本書(shū)后,你就可以自己寫(xiě)一個(gè)dos攻擊程序和sniffer了。

  我說(shuō)的簡(jiǎn)單,其實(shí)我提到的每本書(shū)至少都?jí)蚰阊芯亢荛L(zhǎng)時(shí)間的,所以希望初學(xué)者別著急不驕不躁,相信只要努力過(guò),一定會(huì)成為高手的。

  在寫(xiě)代碼的時(shí)候大家要注意養(yǎng)成好的代碼習(xí)慣和風(fēng)格還有抽象能力。

  下面給出大家在寫(xiě)代碼的時(shí)候的20字方針:

  1、函數(shù)要小

  盡量的把函數(shù)弄的通用點(diǎn),代碼行少點(diǎn),一個(gè)函數(shù)只完成一個(gè)簡(jiǎn)單的功能,一眼就能看出來(lái)此函數(shù)有沒(méi)有代碼錯(cuò)誤,每個(gè)函數(shù)都是健壯的,那么你的程序就是健壯的。

  2、代碼要少

  完成一個(gè)功能的時(shí)候在邏輯清楚的情況下代碼越少越好,千萬(wàn)不要比代碼誰(shuí)寫(xiě)的多啊。

  3、算法要好

  在完成一個(gè)功能的時(shí)候要考慮效率,目前計(jì)算機(jī)的內(nèi)存很大,所以內(nèi)存已經(jīng)不是首要考慮的因素了,但是在某些特殊的地方效率還是很重要的。有效率高的算法,就不用效率低的算法,看看本版有一篇精華貼子是關(guān)于把一個(gè)字符竄兩邊的空格去掉的帖子(trim),很多人都提出了算法,但是有一個(gè)算法是最好的,效率最高,代碼最少,是算法要好的最好體現(xiàn)

  4、命名要清

  命名要清楚,最要用漢語(yǔ)中的謂賓結(jié)構(gòu)如set_buffsize()

  5、文件要多

  盡量把一個(gè)大的程序安功能分成多個(gè)文件,一個(gè)文件盡量不要超作1000行,這樣就很清楚的知道那個(gè)文件代碼是健壯的,那個(gè)文件有可能有隱患,在代碼檢查的時(shí)候可以有針對(duì)性的檢查某幾個(gè)文件

關(guān)于“學(xué)習(xí)c語(yǔ)言的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI