[1866] Re:C言語ポインタ完全制覇の質問
投稿者:(ぱ)こと管理人
2013/08/03 16:09:15
>P108の上半分の
>#ifdef DEBUG
>#define DEBUG_WRITE(arg) debug_write arg
…
>でdebug_writeのうしろに空白があって、argがあるのがどういうことか理解できません。
このDEBUG_WRITEの使い方についてはその続きで説明しており、以下のように書いています。
DEBUG_WRITE(("hoge..%d\n", hoge))
これをプリプロセッサにかけたときにどうなるかは、やってみれば一番わかると思いますが、
この2重の括弧の内側が、括弧ごと展開されますので、こうなります。
debug_write ("hoge..%d\n", hoge)
これで可変長引数を取るデバッグライト用関数debug_write()を
呼び出すことができるわけです。