內容如下:
一:
這是乙個比較常用的c/c++雜注,只要在標頭檔案的最開始加入這條雜注,就能夠保證標頭檔案只被編譯一次。
#pragma once是編譯器相關的,就是說即使這個編譯系統上有效,但在其他編譯系統也不一定可以,不過現在基本上已經是每個編譯器都有這個雜注了。
#ifndef,#define,#endif是c/c++語言中的巨集定義,通過巨集定義避免檔案多次編譯。所以在所有支援c++語言的編譯器上都是有效的,如果寫的程式要跨平台,最好使用這種方式
為了避免同乙個檔案被include多次
1 #ifndef方式 2 #pragma once方式 在能夠支援這兩種方式的編譯器上,二者並沒有太大的區別,但是兩者仍然還是有一些細微的區別。
方式一:
#ifndef __somefile_h__ #define __somefile_h__ ... ... // 一些宣告語句 #endif
方式二:
#pragma once ... ... // 一些宣告語句
#ifndef的方式依賴於巨集名字不能衝突,這不光可以保證同乙個檔案不會被包含多次,也能保證內容完全相同的兩個檔案不會被不小心同時包含。當然,缺點就是如果不同標頭檔案的巨集名不小心「撞車」,可能就會導致標頭檔案明明存在,編譯器卻硬說找不到宣告的狀況
#pragma once則由編譯器提供保證:同乙個檔案不會被包含多次。注意這裡所說的「同乙個檔案」是指物理上的乙個檔案,而不是指內容相同的兩個檔案。帶來的好處是,你不必再費勁想個巨集名了,當然也就不會出現巨集名碰撞引發的奇怪問題。對應的缺點就是如果某個標頭檔案有多份拷貝,本方法不能保證他們不被重複包含。當然,相比巨集名碰撞引發的「找不到宣告」的問題,重複包含更容易被發現並修正。
方式一由語言支援所以移植性好,方式二 可以避免名字衝突
**自 :
二:#include
visual studio 2008
其他版本
更新:2007 年 11 月
#define
_tcsstr、_mbswcs_unicode_mbcs。
_tchar_unicode_tcharwchar_t
char
。((wchar_t
char_tcsn
n由於某些 sbcs 字串處理函式採用(有符號的)char*_mbcs在 tchar.h 中使用型別安全內聯函式 thunk。這是預設行為。
_mb_map_direct,在 tchar.h 中使用直接巨集。如果這樣做,必須手動匹配型別。這是最快的方法,但不是型別安全的方法。
_no_inlining常數。這是最慢的方法,但卻是型別安全性最高的方法。
一般文字對映的預處理器指令
# define
編譯版本
示例_unicode
unicode(寬字元)
_tcsrev_wcsrev
_mbcs
多位元組字元
_tcsrev_mbsrev
無(預設:既未定義_unicode
sbcs (ascii)
_tcsrevstrrev
_tcsrev_tcsrev_tcsrev_tchar一般文字資料型別對映
一般文字
資料型別名稱
_unicode 和
_mbcs 未定義
_mbcs
已定義_unicode
已定義_tchar
char
char
wchar_t
_tint
intint
wint_t
_tschar
signed char
signed char
wchar_t
_tuchar
unsigned char
unsigned char
wchar_t
_txchar
char
unsigned char
wchar_t
_t
無效(由預處理器移除)
無效(由預處理器移除)
l(將後面的字元或字串轉換成相應的 unicode 形式)
**自:
VS 2008 標頭檔案庫檔案設定
在程式開發中,很多時候需要用到別人開發的工具包,如opencv和itk。一般而言,在vs2008中,很少使用原始檔,大部分是使用對類進行宣告的標頭檔案和封裝了類的鏈結庫 靜態lib或動態dll 如果要使用這些類,需要在檔案中包含標頭檔案的名字,如 include cv.h 但這個並不夠,因為這個檔案...
解決VS2008中MFC靜態編譯出來的檔案太大問題
原始鏈結 vs2008下 test 1 新建乙個預設的mfc對話方塊工程,採用共享mfc的方式,生成檔案 82kb test 2 新建乙個預設的mfc對話方塊工程,採用靜態鏈結mfc的方式,生成檔案1.66mb vs2005下 test 1 新建乙個預設的mfc對話方塊工程,採用共享mfc的方式,生...
VS2008中文版安裝和初試用
這次安裝是team版本,比專業版安裝時要多幾個選項。安裝vs2005大約用了40分鐘,安裝msdn大約用了10多分鐘,安裝過程還是比較順利的。安裝完畢後,我初步試用了幾下,和vs2005相比有如下幾大特色。1 啟動速度和窗體載入速度明顯加快,我覺得快了至少一倍 用vs2005開啟我的嵌入式組態程式主...