国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
[轉(zhuǎn)]VC _T的用途 - 筆記 - summer - CSDN學(xué)生大本營 - Power...

[轉(zhuǎn)]VC _T的用途


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

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

_t("hello world")

在ansi的環(huán)境下,它是ansi的,如果在unicode下,那么它將自動解釋為雙字節(jié)字符串,既unicode編碼。

這樣做的好處,不管是ansi環(huán)境,還是unicode環(huán)境,都適用。

那么在VC++中,字符串_T("ABC")和一個普通的字符串"ABC"有什么區(qū)別呢?

_T("ABC")

如果定義了unicode,它將表示為L"ABC",每個字符為16位,寬字符串。

如果沒有定義unicode,它就是ascii的"ABC",每個字符為8位。

相當(dāng)于

#ifdef _UNICODE

#define _T("ABC") L"ABC"

#else

#define _T("ABC") "ABC"

#endif

_T("ABC")中的一個字符和漢字一樣,占兩個字節(jié),而在"ABC"中,英文字符占一個字節(jié),漢字占兩個字節(jié)。

一、 在字符串前加一個L作用:

   如 L"我的字符串"   表示將ANSI字符串轉(zhuǎn)換成unicode的字符串,就是每個字符占用兩個字節(jié)。

strlen("asd") =   3;

strlen(L"asd") =   6;

   二、   _T宏可以把一個引號引起來的字符串,根據(jù)你的環(huán)境設(shè)置,使得編譯器會根據(jù)編譯目標(biāo)環(huán)境選擇合適的(Unicode還是ANSI)字符處理方式

   如果你定義了UNICODE,那么_T宏會把字符串前面加一個L。這時 _T("ABCD") 相當(dāng)于 L"ABCD" ,這是寬字符串。

   如果沒有定義,那么_T宏不會在字符串前面加那個L,_T("ABCD") 就等價于 "ABCD"

三、TEXT,_TEXT 和_T 一樣的

如下面三語句:

TCHAR szStr1[] = TEXT("str1");

char szStr2[] = "str2";

VC _T的用途

2009-09-23 16:28

 

 

 

 

from:http://blog.csdn.net/athemon/archive/2008/08/29/2849584.aspx

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

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

_t("hello world")

在ansi的環(huán)境下,它是ansi的,如果在unicode下,那么它將自動解釋為雙字節(jié)字符串,既unicode編碼。

這樣做的好處,不管是ansi環(huán)境,還是unicode環(huán)境,都適用。

那么在VC++中,字符串_T("ABC")和一個普通的字符串"ABC"有什么區(qū)別呢?

_T("ABC")

如果定義了unicode,它將表示為L"ABC",每個字符為16位,寬字符串。

如果沒有定義unicode,它就是ascii的"ABC",每個字符為8位。

相當(dāng)于

#ifdef _UNICODE

#define _T("ABC") L"ABC"

#else

#define _T("ABC") "ABC"

#endif

_T("ABC")中的一個字符和漢字一樣,占兩個字節(jié),而在"ABC"中,英文字符占一個字節(jié),漢字占兩個字節(jié)。

一、 在字符串前加一個L作用:

   如 L"我的字符串"   表示將ANSI字符串轉(zhuǎn)換成unicode的字符串,就是每個字符占用兩個字節(jié)。

strlen("asd") =   3;

strlen(L"asd") =   6;

   二、   _T宏可以把一個引號引起來的字符串,根據(jù)你的環(huán)境設(shè)置,使得編譯器會根據(jù)編譯目標(biāo)環(huán)境選擇合適的(Unicode還是ANSI)字符處理方式

   如果你定義了UNICODE,那么_T宏會把字符串前面加一個L。這時 _T("ABCD") 相當(dāng)于 L"ABCD" ,這是寬字符串。

   如果沒有定義,那么_T宏不會在字符串前面加那個L,_T("ABCD") 就等價于 "ABCD"

三、TEXT,_TEXT 和_T 一樣的

如下面三語句:

TCHAR szStr1[] = TEXT("str1");

char szStr2[] = "str2";

WCHAR szStr3[] = L("str3");

那么第一句話在定義了UNICODE時會解釋為第三句話,沒有定義時就等于第二句話。  

但二句話無論是否定義了UNICODE都是生成一個ANSI字符串,而第三句話總是生成UNICODE字符串。

為了程序的可移植性,建議都用第一種表示方法。

但在某些情況下,某個字符必須為ANSI或UNICODE,那就用后兩種方法

 

WCHAR szStr3[] = L("str3");

 

那么第一句話在定義了UNICODE時會解釋為第三句話,沒有定義時就等于第二句話。  

但二句話無論是否定義了UNICODE都是生成一個ANSI字符串,而第三句話總是生成UNICODE字符串。

為了程序的可移植性,建議都用第一種表示方法。

但在某些情況下,某個字符必須為ANSI或UNICODE,那就用后兩種方法

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
vc中與字符串相關(guān)的宏_T,TEXT._TEXT.L的作用
關(guān)于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L
LPWSTR,LPCTSTR,LPTSTR
VS環(huán)境下MFC程序出現(xiàn)的問題
VC中unicode項目向多字節(jié)字符集項目移植
VC Windows平臺字符透明編程大總結(jié)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服