CPU の影響を受けやすいアプリケーションがあり、関数呼び出しを最小限に抑えたいと考えています。私は次のようなものを書きたい:
#ifdef condition
#define f(a,b) ff(a,b)
#define f(a) ff(a)
#endif
しかし、コンパイラは f が複数回定義されていると見なします。使いたかった__VAR_ARGS__のですが、上記の例bではenumタイプです。それを行う適切な方法はありますか、または名前を に変更f(a,b) する必要がありf2(a,b)ますか?
定義を明確にするために、アクティブな場合は、ファイル/標準出力に出力するデータを処理する関数への呼び出しを追加します。そうでない場合、それらは空の行に置き換えられます。私の意見では、この方法はコードサイズを改善し、マクロは私のようINFO(object->contents)に単一行のキーワードであるためです。より読みやすいと思います。WARN("message")また、やのようなものを追加できれば便利WARN("value is",obj->printvalue())でした。
また、そのトリックを行うと思いますinline(以下の回答から)。