В чем разница между glib gunichar и wchar_t и что лучше для кроссплатформенных решений?
Я пытаюсь написать код на C, который является переносимым только для пользователя. gcc
, и имеет glib
установлены.
Из всех моих исследований я обнаружил, что с gcc
, wchar_t
всегда определяется как 4 байта, и с glib
gunichar
также 4 байта.
То, что я не понял, если как gunichar
, wchar_t
также кодируется как UCS4. Это тот случай? Если это так, я должен быть в состоянии просто бросить gunichar*
к wchar_t*
и использовать stdc wcs*
функции, верно?
1 ответ
Решение
Если вы используете GLib, не используйте wchar_t
, Используйте поддержку Unicode, это намного лучше, чем поддержка стандартной библиотеки C.
wchar_t
4 байта в Linux и Mac OS (и некоторых других), а не в Windows (там 2 байта) и некоторые другие. Портативный код означает избегать wchar_t
как чума.