假设你的程序既要处理英文文本(很容易纳As位字符,并且还能空出一位),又要处理日文文本(需要16位才能包含所有的可能性)。如果你用相同的代码来处理这两种不同国家的文本,你是否需要给每个字符,甚至英文符都分配16位呢?也许不必这样做,因为有些多字节字符的编码方法会保存关于是否需要多于一个字节的空间的信息。
mbstowcs()(“多字节字符串到宽字符串”)和wcstombs()(“宽字符串到多字节字符串”)用于wchar—t类型的数组(其中每个字符占16位或两个字节)和多字节字符串(可能的话,一个字符会被存入一个字节中)。
你无法保证你的编译程序能以紧缩的方式存储多字节字符串(因为没有一种普遍接受的方法)。如果你的编译程序能帮助你处理多字节字符串,mbstowcs()和wcstombs()就是完成这部分工作的函数。