在<WCHAR.h>頭文件中有定義 typedef unsigned short wchar_t; 就是 wide character type 的意思 在 美國資訊交換標準碼(ASCII: American Standard Code for Information Interchange) 開發過程中 爲了節約成本(排除8位, 當時每位元的存儲空間成本很昂貴) 最終由美國國家標準協會發布了7位版本的方案 記錄在ANSI X3.4-1986 中 該標準在美國及拉丁字母國家使用方便 但在遠東 西歐南部 會遇到拉丁字母中不存在的字母 比如俄語(斯拉夫) 希臘語 希伯來語 阿拉伯語 以及 漢字 日語 韓語 爲了解決的字符集不同的噁心問題(內碼轉換) 誕生了Unicode字元集 它比ASCII多了一倍空間 這個wchar_t 就是Unicode對應的資料結構 它是16位的 可以裝得下漢字哦 wchar_t *p = L"ooxx!"; 這個L告訴編譯器, 把字母擴展爲寬字元 你也會見到 _T(ooxx) 或者 TEXT(之類的寫法) 他們都是爲了讓你的代碼能在美歐以外運行 #ifdef UNICODE //UNICODE版 #define __T(x) L##x //這##字符串連接符 你應該知道滴 #else //ASCII版 #define __T(x) (x) #endif #define _T(x) __T(x) #define _TEXT(x) __T(x) 因此他們都是一樣的 在windows的編程中 更普遍的寫法是用WCHAR取代wchar_t 因爲符合微軟的命名規則 當然你如果喜歡Linux的話... typedef char CHAR typedef wchar_t WCHAR 如果你的代碼是國際版本(多語言版) 你也可以用TCHAR.. 它是一個依賴識別字的宏 可以是char 也可以是wchar_t
關於WCHAR
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.