老是又小伙伴在群里說我的代碼是按照書上的代碼敲的,,就是編譯不過?想不通呀,!目前市面上的一些書都是十來年以前編寫的了,,你不幸看的還是這些書,錯誤原因就在這里,。
比如譚浩強的C語言程序設計這個本書都出了N版了,,而我們在看很早的版本。時代在發(fā)展,,在大家都在用vs2015了,,C語言最新標準也換成了C11。你說你按照老版本書上的例子敲代碼,,編譯不出錯基本上都是幸運的了,。
所以小伙伴們一定要注意了,你買書不要急著去看里面的知識,。作者序你一定要看,,它是在什么環(huán)境下寫的,都講些什么,,計算機類的書基本上都會寫上適用范圍,,開發(fā)環(huán)境等。如果一本書這方面都沒有,那他肯定不是一本好書,。
選好一本書,,對于學習編程很重要。選網上大家都推薦的,,大家說好才是真的好,。你也不想我敲個例子都一大堆錯誤等著吧。真是這個樣子你殺人的心都會有的,。書本身的問題讓人痛絕,。但不全是書本自身的問題。上面我們提到的標準也是重要的一環(huán),,誠然又好多開源代碼在以前的gcc版本是能編譯過的,,那時候的編程還是如c89,c99。后邊的標準越來越嚴格了,。誰都喜歡新東西,搞開發(fā)也一樣,,你說window 10 出來了,, 你是不是癢癢的要把window 7 換了。而本身編譯工具也是在不斷更新,。標準差異再所難免,。
為什么按照書上的代碼,編譯老是出錯,?
C標準到底何也,? ANSI C 是由ANSI 制定的C語言標準。常見的編譯器都按此標準設計,。所以用ANSI C語言標準寫的C程序, 各編譯器都能識別,,編譯。這個對于編譯器實現很重要,,要不然老版本的代碼用新的編譯器編譯又問題,。標準在不斷規(guī)范。所以以前寫的代碼規(guī)范與現行的不一致就會導致編譯錯誤了,。重不重要等你寫代碼維護版本就知道了,。
上面說到的編譯器,本身也是又差異的你能說vs的cc能跟gcc一樣,? 比如C99相對于C89來說增加了很多特性,,比如說新的關鍵字,數據類型,,變長數組,,國際化特征等等,一般來說,現在的C編譯器都能很好的符合C89標準,,而C99標準至今還沒有很好的普及,,比如說微軟直到VC2010依然沒有符合C99標準。
為什么按照書上的代碼,,編譯老是出錯,?
說了這么多按照書上的例子敲代碼編譯出錯我們一定要知道,書中的例子是基于那個標準的,,我們用的編譯器支不支持這個標準,。
如果在學習中遇到困惑可以直接加編程導師微信號coderonline,獲取自學指南,。