TCHAR,CHAR,LPSTR,LPCSTR,char這幾個(gè)數(shù)據(jù)類型有何不同
char是C語言標(biāo)準(zhǔn)數(shù)據(jù)類型,字符型,至于由幾個(gè)字節(jié)組成通常由編譯器決定,一般一個(gè)字節(jié)。
Windows為了消除各編譯器的差別,重新定義了一些數(shù)據(jù)類型,你提到了另外幾個(gè)類型都是這樣。CHAR為
單字節(jié)字符。還有個(gè)WCHAR為Unicode字符,即不論中英文,每個(gè)字有兩個(gè)字節(jié)組成。如果當(dāng)前編譯方式為
ANSI(默認(rèn))方式,TCHAR等價(jià)于CHAR,如果為Unicode方式,TCHAR等價(jià)于WCHAR。在當(dāng)前版本LPCSTR和
LPSTR沒區(qū)別,即以零結(jié)尾的字符串指針,相當(dāng)于CHAR *。 LPSTR、LPCSTR相當(dāng)于char *,所以這種類型
變量的賦值等同于char *的賦值
下面給出兩個(gè)例子,一個(gè)是直接賦值,另一個(gè)是間接的。
Ex1: LPSTR lpstrMsg = "I'm tired.";
Ex2: char strMsg[]="I'm tired.";
LPSTR lpstrMsg = (LPSTR) strMsg
posted on 2011-02-17 09:14 wrh 閱讀(583) 評(píng)論(0) 編輯 收藏 引用