glib gunichar和wchar_t之间有什么区别,哪个更适合跨平台解决方案?

时间:2012-03-24 09:24:43

标签: c unicode cross-platform glib wchar-t

我正在尝试编写一些C代码,只有用户gcc并且已安装glib时才可移植。

在我的所有研究中,我发现使用gcc时,wchar_t始终定义为4个字节,而glib gunichar也定义为4个字节。

没有想出的是,如果像gunichar那样,wchar_t也被编码为UCS4。是这样的吗?如果是这样,我能够简单地将gunichar*投射到wchar_t*并使用stdc wcs*函数,对吗?

1 个答案:

答案 0 :(得分:8)

如果您使用GLib,请不要使用wchar_t。使用它的unicode支持,它比标准库的支持更好

wchar_t在Linux和Mac OS(以及其他一些)上是4个字节,而不是在Windows上(那里是2个字节)和其他一些字节。便携式代码意味着像瘟疫一样避免wchar_t