>>DEBUG_WRITE(("hoge..%d\n", hoge));
>を
>DEBUG_WRITE("hoge..%d\n", hoge);
>と書きたい場合は、
>>>#define DEBUG_WRITE(arg) debug_write(arg)
>と書くことで同じになりますか?
なりません。引数をひとつしか取らないマクロにふたつの引数を渡しているので
エラーになります。
というか、そもそもこれでうまくいくのであれば誰も苦労はしないわけで、
わざわざ二重括弧をつけたりしようとは思いません。
ISO C99では新機能により可変長引数を持つマクロが定義できるようになりましたが。
http://seclan.dll.jp/c99d/c99d02.htm
処理系をお持ちであれば、実際に試してみて、プリプロセッサの出力を
見てみるのが一番わかりやすいと思いますが、手元に実行できる環境は
ないのでしょうか?
まあ、私も子どもの頃は、パソコン買ってもらえなくてペーパープログラマー
だったので、だとすればその苦労はわかります。