標籤:

學C語言的過程中是否要敲一遍C的庫函數?

重新學了下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:編程語言 |