- 140 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 21:51:34 ]
- DBGPRINTFについて、関数型マクロの可変長引数が使えれば
#ifdef _DEBUG #define TRACE(...) DBGPRINTF(__VA_ARGS__) #else #define TRACE(...) /* nop */ #endif とスマートにできる。VC2005ExpressとARMコンパイラなら使える。VC6は無理ぽ。VC2003は知らん。 結局どのコンパイラでも使えるのは #ifdef _DEBUG #define TRACE DBGPRINTF #else #define TRACE if(0)DBGPRINTF #endif しかないんだろうか。 ちなみにARMコンパイラで if (0) { // 処理 } というコードをコンパイルすると、ちゃんと最適化されてif(0)も含めてコードが無くなる。 なのでパフォーマンス的には後者のマクロでも問題なし。
|

|