5

私は、ユーザーが持っていてgccglibインストールされている場合にのみ移植可能な C コードを書き込もうとしています。

私のすべての調査から、 with gcc、 awchar_tは常に 4 バイトとして定義され、 with glibagunicharも 4 バイトであることがわかりました。

が理解していないのは、 a のようにgunichar、 awchar_tも UCS4 としてエンコードされていることです。これは事実ですか?もしそうなら、単純に aを a にキャストして関数を使用できるはずですよね?gunichar*wchar_t*stdc wcs*

4

1 に答える 1

8

GLib を使用する場合は、使用しないでくださいwchar_t。Unicode サポートを使用してください。C 標準ライブラリのサポートよりもはるかに優れています。

wchar_tLinux および Mac OS (およびその他のいくつか) では 4 バイトであり、Windows (2 バイト) およびその他の一部ではありません。移植可能なコードとはwchar_t、ペストのように回避することを意味します。

于 2012-03-24T10:12:42.333 に答える