C++基本入门资料搜集
?? 目前做項目主要使用C#語言,可是發現C#開源的東西實在太少了,而且都是“二手貨”。所謂的二手貨,就是參照原作者的思路,以及其代碼,其他人實現的。這樣的二手貨,一般都存在問題:要么功能不完整,要么就是C#改編者沒有切實領會到原作者的思想。再考慮到C++的應用前景,及其實用的廣泛性,打算深入學習下C++。怎么學?把《C++ Primer》從頭看到尾,估計看完也忘了。最好的方法還是看大牛的算法,然后再去研究語言特性,即不懂的地方再google和查書。考慮到目前需要研究下聚類算法,所有就先拿洞庭散人的那篇<C++實現的K-means開刀吧>。考慮以后一邊研究北大老師李曉明《搜索引擎--原理、技術、與系統》一書中的配套系統(TSE)Tiny Search Engine 的C++源碼,一邊學習C++語言特性。
?
?
?
?
?
#pragma once 的意思
以前寫的,翻出來看看 ?
? ?
? 在vc6的時代頭文件一般使用ifndef ? define ? endif ?
? 在vc7的時代頭文件一般成了pragma ? once ?
? 不知道有沒有人深究其中的意義 ?
? 為什么有這樣的代碼,是為了頭文件不被重復引用,那樣編譯器抱錯的,這兩種方法都是同樣的目的,有沒有區別呢? ?
? 還是舉例來說明,可能有好幾個庫,每個庫內部可能都有public.h這個文件,如果使用 ?
? ifndef ? public_h ?
? define ? public_h ?
? ... ?
? endif ?
? 那么當一個文件同時引用兩個這樣的庫時,后一個庫里的文件就不被編譯了,而pragma ? once可以保證文件只被編譯一次 ?
? 看起來pragma ? once比ifndef ? define ? endif要好,那么ifndef ? define ? endif ?
? 的地方都pragma ? once好了。今天碰到了又一個例子,比如你有一個zlib.h在幾個庫都用到,而為了方便,把zlib每個目錄下copy了一分,因為這個文件不會作修改,已經很完整了,這個時候如果使用pragma ? once,就會重復定義,看來ifndef ? define ? endif還是又派上用場的地方。 ?
? 所以對于公有或者接口的文件,使用ifndef ? define ? endif,對于內部的文件使用pragma ? once. ?
? ?
? 呵呵,你壓根兒用不著是吧,當我沒說過。
總結
以上是生活随笔為你收集整理的C++基本入门资料搜集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三向外围
- 下一篇: 揭露:人体十大最佳北京上门×××黄金时间