ACSII:American Standard Code for Information Interchange,美国信息交换标准码。
每个代码7位;
一共128个代码(26个小写字母,26个大写字母,10个数字,32个符号,33个控制代码和一个空格);
Unicode:宽字符集。
Unicode中的每个字符都是16位宽。
前128个Unicode字符(16位代码从0x0000 到 0x007F)是ACSII,而接下来的128个Unicode字符(代码从0x0080 到 0x00FF)是ISO 8859-1对ASCII的扩展。
Unicode字符串占用的内存是ASCII字符串的两倍。
ANSI C:美国国家标准编程语言——C。
DBCS:double-byte character set,双字节字符集。
ISO:International Standards Organization,国际标准化组织。
Intel微处理器首先从最低位字节开始存储多字节数值,所以:
typedef unsigned short wchar_t;
wchar_t c = 'A'; // 宽字符0x0041,16位宽。在内存中是以0x41,0x00的顺序保存的。
定义指向宽字符串的指针:
wchar_t *p = L"Hello!"; // 大写字母L(代表long),告诉编译器该字符串按宽字符保存——即每个字符占用2个字节。
指针变量p要占用4个字节,而字符串变量需要14个字节——每个字符需要2个字节,末尾的0(空结束符)还需要两个字节。