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
(以下の回答から)。