學C語言的過程中是否要敲一遍C的庫函數?
01-05
重新學了下C,發現過去,對C根本沒有理解,比方說數組指針與指針數組,結構體指針,函數指針,函數回調等,雖然現在也在迷糊中,但是正在代碼量增長中,有信心理解。現在想請教各位大神,我在《pointer on C》中看到,如果庫函數中有的功能,就不要自己實現,自己對C庫函數還不是很了解,是否要敲一遍C庫函數,加深理解。
學習和使用是兩碼事。找本 KR 看看,其中用最簡單的方式實現了不少庫函數。
再說,現在很多面試題就是讓你實現庫函數,atoi 什麼的。
自己敲一遍有好處,只要別在項目中真用就行。請問你是出於什麼目的想要重新寫一遍標準庫里的函數?如果是想要學習這些函數背後的演算法,那麼你應該去讀一本演算法書,比如《演算法導論》。如果你只是想更熟悉C語言的語法,那麼去寫一個有實用價值的項目會更好一點。
非廣告,推薦一本書
C標準庫
http://www.amazon.cn/C%E6%A0%87%E5%87%86%E5%BA%93-%E6%99%AE%E5%8A%B3%E6%88%88/dp/B00IZW4DK8/ref=sr_1_1?ie=UTF8qid=1401163088sr=8-1keywords=C%E6%A0%87%E5%87%86%E5%BA%93
strcpy 必須要敲一遍。我見過不少C程序猿,三年以上的也有,字元串不知道結尾0。。。
首先你要搞清楚,你是在學習C語言,那麼自己用自己的方式實現一邊C標準庫,首先對自己掌握C語言的基本語法是有很大幫助的,其次對學習設計合適的函數也是很好的鍛煉方式啊。這沒啥好說的。
沒必要,常用的就那些,man -k 查下就好了,敲多了,就成了搬磚的了
常用的庫函數不是敲一遍就可以的,比如strcpy memcat strstr atoi malloc之類的,你必須熟練掌握其用法,領悟其精髓。閑暇時自己實現一遍更好,字元串函數本身就不複雜。其他的庫函數,比如線程相關函數、進程相關函數、socket相關函數必須知道函數名,及大致參數,這些函數一般自己封裝後就很少一遍遍用,但是必須知道有這些函數這些函數是怎麼用的。所有的庫函數,在一個正經項目不要用自己的實現,除非你真的考慮周全(可重用、異常)。
推薦閱讀:
※關於C語言中漢字排序的問題?
※LABVIEW 有哪些反人類的編程特性?
※c++類成員變數為什麼不能做成員函數的默認實參?
※VR 時代的主流編程語言是什麼?
※C++/C/JAVA/Python之間的區別?
TAG:編程語言 |