5

私はchar*、あらゆる場所での使用から、内部の Unicode 表現である UCS4 の使用にアプリケーションを移植しています。U"unicode literals"文字列を定義するために C11 を使用します。文字列はchar32_tuint32_t本質的に の配列に展開されます。

問題は、printf-like 関数に適切に注釈を付けることにあります。「フォーマット」はもはやではないため、コンパイラはそれ以上のコンパイルを拒否し、フォーマットの代わりにchar*満足できないと思います。char32_t *char *%s

私は stdlib ファミリーにまったく依存していない*printfので、フォーマットは純粋に私の実装によって行われます。

この属性を完全に無効にする以外に、これに対する正しい解決策は何ですか?

4

1 に答える 1

1

現在、GCC でこれを行う方法はありません。これは既知のバグです。GCC バグ 64862を参照してください。

于 2015-02-17T15:21:49.603 に答える