2

API のユーザーに、カスタム フォーマット文字列を渡す機能を提供したいと考えています。

これで、期待している指定子の種類 (単一の double の場合) がわかったので、clang にこれを認識させたいと思います。

clangのドキュメント (実際にはgcc のドキュメントを指しているだけです) では、関数/メソッドへの実際のパラメーターに関して形式を指定することしかできないように見えます。

ただし、clang に次のように伝えたいと思います。

その情報が見つからないようです。ポインタはありますか?

ありがとう

4

1 に答える 1

1

ドキュメントを見ると、gccあなたが望むことを直接行う方法はないと思います。(あなたの目標は、単一の印刷に適した形式を要求するfloatことだと思います。)私が考えることができる最も近いことは、関数がある場合、次のようにvoid myfunc(const char *fmt) 書き換えることができるということです。

extern void do_myfunc(const char *fmt); /* the real body of myfunc() */
inline void myfunc(const char *fmt) { /* put this in the header */
    if (0) {
        float f = 0.0f;
        printf(fmt, f);
    }
    do_myfunc(fmt);
}

clangデッドコードを削除するために頼ります。もちろん、clang上記のデッド コードについて文句を言うかもしれません。

于 2013-07-14T04:09:22.927 に答える