目前做專案主要使用c#語言,可是發現c#開源的東西實在太少了,而且都是「二手貨」。所謂的二手貨,就是參照原作者的思路,以及其**,其他人實現的。這樣的二手貨,一般都存在問題:要麼功能不完整,要麼就是c#改編者沒有切實領會到原作者的思想。再考慮到c++的應用前景,及其實用的廣泛性,打算深入學習下c++。怎麼學?把《c++ primer》從頭看到尾,估計看完也忘了。最好的方法還是看大牛的演算法,然後再去研究語言特性,即不懂的地方再google和查書。考慮到目前需要研究下聚類演算法,所有就先拿洞庭散人的那篇#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.
呵呵,你壓根兒用不著是吧,當我沒說過。
web入門 資訊蒐集
但是有些 會通過指令碼禁止掉頁面右鍵的使用 1.先了解一下http請求 在這張圖中也可以看出get方式的請求一般不包含 請求內容 部分,請求資料以位址的形式表現在請求行 位址中 之後的部分就是通過get傳送的請求資料,我們可以在位址列中清楚的看到,各個資料之間用 符號隔開。顯然,這種方式不適合傳送私...
C 程式蒐集
include include include include using namespace std class student friend ostream operator ostream out,student s const string getno const string getnam...
Linux資料蒐集
1.use kgdb and jlink under mini2440 platform 2.under ubuntu 10.04,build development environment of xilinx sb1651 3.linux kernel 2.6 usb轉串列埠ic驅動程式介紹 4....