VS2008 stdafx h標頭檔案解析

2022-08-11 11:03:11 字數 2739 閱讀 2380

內容如下:

一:

這是乙個比較常用的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開啟我的嵌入式組態程式主...