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