char,wchar_t,WCHAR,TCHAR,ACHAR的區別
Posted on 2011-12-13 10:24 Prayer 閱讀(1788) 評論(0) 編輯 收藏 引用 所屬分類: C/C++char:
ANSI字符串,可用字符串處理函數strcat( ),strcpy( ), strlen(
)等以str打頭的函數。
wchar_t :
wchar_t是Unicode字符的數據類型,它的實際定義為:typedef
unsigned short wchar_t;
wchar_t 可用字符串處理函數:wcscat(),wcscpy(),wcslen()等以wcs打頭的函數。
WCHAR:
在頭文件中有這樣的定義:typedef wchar_t WCHAR; 所以WCHAR實際就是wchar_t。
在C語言里面提供了 _UNICODE宏(有下劃線),在Windows里面提供了UNICODE宏(無下劃線),只要定了_UNICODE宏和UNICODE宏,系統就會自動切換到UNICODE版本,否則,系統按照ANSI的方式進行編譯和運行。只定
義了宏并不能實現自動的轉換,他還需要一系列的字符定義支持。
TCHAR:
如果定義了UNICODE宏則TCHAR被定義為wchar_t。typedef wchar_t TCHAR; 否則TCHAR被定義為char typedef char TCHAR;
ACHAR:
此類型是AUTODESK公司在adachar.h 頭文件中定義的。
當定義了AD_UNICODE(AUTODESK公司使用UNICODE宏)時為wchar_t。