windows Unicode支持
unicode是16位 65536个字符,中国日本韩国语(CJK)从0x3000~0x9FFFwindows 是32位系统所以他是用4字节来存储一个指针字符串存储在静态内存中,并在末尾加0,若在函数中定义数组来存储字符串则鼻血定义为一个static变量 static char str[]="Hello!";C中的宽字符:wchar_t 16bit 在WCHAR.H中定义为 typedef unsigned short wchar_t;wchar_t c='A'; //0x0041, intel CPU中先从低位字节开始存储所以0x41、0x00顺序存储wchar_t *p=L"Hello!";//L tell compile 按宽字符保存如果strlen(p);//返回1,因为他在Intel中存储为48 00 65 00,被当作只有一个Ascii值为48的字符串,因为第二个字符为00,表示字符串结束程序在链接时才运行库函数,wcslen(p)用来处理宽字符VC中有TCHAR.H头文件,其中定义的函数和宏定义的前面都有一条下划线,为需要字符串参数的标准运行库提供一系列的替代名称,如_tcslen()会自动选择哪一个库函数来处理字符如果定义了_UNICODE标识符,则TCHAR就是wchar_t,否则就是char#define __T(x) L##x // ##称为粘帖符号,用于给字符串前面加上L可以使用_T("Hello!");或者_TEXT("Hello!");定义字符串,其中如果定义了_UNICODE标识符,则为宽字符组合winnt.h处理_unicode 其中定义CHAR为char,WCHAR为wchar_t, wc开的变量表示该变量为宽字符要在其他头文件之前包含
本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。