В чем разница между glib gunichar и wchar_t и что лучше для кроссплатформенных решений? - PullRequest
5 голосов
/ 24 марта 2012

Я пытаюсь написать некоторый C-код, который является переносимым, только если у пользователя gcc и glib установлен.

Из всех моих исследований я обнаружил, что с gcc, wchar_t всегда определяется как 4 байта, а с glib a gunichar также 4 байта.

Что я не понял , так это то, что если gunichar, то wchar_t также кодируется как UCS4. Это тот случай? Если это так, я должен быть в состоянии просто привести gunichar* к wchar_t* и использовать функции stdc wcs*, верно?

1 Ответ

8 голосов
/ 24 марта 2012

Если вы используете GLib, не используйте wchar_t.Используйте поддержку юникода, это намного лучше, чем поддержка стандартной библиотеки C.

wchar_t - 4 байта в Linux и Mac OS (и некоторых других), а не в Windowsтам 2 байта) и некоторые другие.Переносимый код означает избегать wchar_t, как чумы.

...