#define MY_PRINT(_format, ...) printf("MIME : %s" _format, __FUNCTION__, __VA_ARGS__);
"\n
print メッセージの最後に "を追加したいと思います。
しかし、
#define MY_PRINT_LN(_format, ...) MY_PRINT(_format "\n", ...)
コンパイルエラーがあります。...
定義マクロでパラメータを渡す方法は?
あなたが使用する__VA_ARGS__
:
#define MY_PRINT_LN(_format, ...) MY_PRINT(_format "\n", __VA_ARGS__)
これは C99 で標準化されました。
ただし、引数がない場合は、最後に冗長なコンマがあります。標準的な解決策はありませんが、GCC (およびおそらく他のコンパイラ) は拡張機能を提供しています。
#define MY_PRINT_LN(_format, ...) MY_PRINT(_format "\n", ## __VA_ARGS__)
extra を使用する##
と、引数がない場合、最後のコンマが削除されます。