C++ 中 _T 含義及用途

_T("Hello")是一個宏,他的作用是讓你的程序支持Unicode編碼,因爲Windows使用兩種字符集ANSI和UNICODE,前者就是通常使用的單字節方式,但這種方式處理象中文這樣的雙字節字符不方便,容易出現半個漢字的情況。而後者是雙字節方式,方便處理雙字節字符。

Windows NT的所有與字符有關的函數都提供兩種方式的版本,而Windows 9x只支持ANSI方式。
如果你編譯一個程序爲ANSI方式,_T實際不起任何作用。而如果編譯一個程序爲UNICODE方式,則編譯器會把"Hello"字符串以UNICODE方式保存。

_T和_L的區別在於,_L不管你是以什麼方式編譯,一律以UNICODE方式保存。

---------------------------------------------------------------------------------------------------------------

1\C++語言中“_T”是什麼意思?

Visual C++裏邊定義字符串的時候,用_T來保證兼容性,VC支持ascii和unicode兩種字符類型,用_T可以保證從ascii編碼類型轉換到unicode編碼類型的時候,程序不需要修改。

如果將來你不打算升級到unicode,那麼也不需要_T,

---------------------------------------------------------

_t("hello world")
在ansi的環境下,它是ansi的,如果在unicode下,那麼它將自動解釋爲雙字節字符串,既unicode編碼。
這樣做的好處,不管是ansi環境,還是unicode環境,都適用。

2\請問在vc++中的字符串_T("ABC")和一個普通的字符串“ABC”有什麼區別。

_T("ABC")
表示如果定義了unicode
它表示 L"ABC",每個字符爲16位,寬字符字符串
---------------------------------------------------------
if not UNICODE
它就是ascii的"ABC",每個字符爲8位
"ABC"就是指ascii字符串"ABC"

----------------------------------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章