Tomute’s Notes

2008-01-23

[][] 可変個数引数マクロがVisual C++で未サポートな件

C99でサポートされた可変個数引数マクロ(以下のようなコード)は、MicrosoftのVisual C++では未サポート(Visual C++ 2005ではサポートされている模様)。

#define dbg(fmt, ...) printf("debug:" fmt, __VA_ARGS__)

上記のコードを、とりあえずVC++コンパイルし実行出来るようにするには、以下のように書き換えると良い。

#define dbg printf

上記で本当に問題が無いかどうかまでは未確認。


【追記】

コメント欄でwraith13さんに指摘していただいたように、この方法ではリリース版でデバッグコードを消す場合に問題があります。


参考サイト:

可変個引数マクロを使う - 職業としてのプログラミング

Variadic MacrosMSDN Library)

プログラミング言語 C の新機能