Sean's Note: char, wchar_t and TCHAR

2011年9月8日 星期四

char, wchar_t and TCHAR


在 c 裡常見的 char 代表 1 個 byte,

後來為了引入寬字元, 而有了 2 個 bytes 的 wchar_t,

wchar_t 的定義如下 :

typedef unsigned short wchar_t;

平常我們所用的字串處理函式如下 :

char* str = "hello!"; // 7

len = strlen(str);

當然也有用來處理寬字元字串的函式 :

wchar_t* str = "hello!"; // 14

len = wcslen(str);

為了使程式既能按 ASCII 又能按 Unicode 編譯,而衍伸了通用變數 TCHAR,

在 tchar.h 裡可以看到,當有 #define _UNIOCODE 時

typedef wchar_t TCHAR

反之,

typedef char TCHAR

如此一來,使用通用變數,將會使得程式碼更為一致性。

而通用的字串處理函式如 : l + 函式名稱

len = lstrlen(str);
len = lstrcpy(str);
len = lstrcpyn(str);
len = lstrcat(str);

沒有留言:

張貼留言