我正在尝试编写一些C代码,只有用户gcc
并且已安装glib
时才可移植。
在我的所有研究中,我发现使用gcc
时,wchar_t
始终定义为4个字节,而glib
gunichar
也定义为4个字节。
我没有想出的是,如果像gunichar
那样,wchar_t
也被编码为UCS4。是这样的吗?如果是这样,我应能够简单地将gunichar*
投射到wchar_t*
并使用stdc wcs*
函数,对吗?
答案 0 :(得分:8)
如果您使用GLib,请不要使用wchar_t
。使用它的unicode支持,它比
wchar_t
在Linux和Mac OS(以及其他一些)上是4个字节,而不是在Windows上(那里是2个字节)和其他一些字节。便携式代码意味着像瘟疫一样避免wchar_t
。