[1868] Re:C言語ポインタ完全制覇の質問
投稿者:(ぱ)こと管理人
2013/08/05 21:39:59
>>>#define DEBUG_WRITE(arg) debug_write arg
>の書き方は、
>#define DEBUG_WRITE(arg) debug_write(arg)
>と書くのと同じことになりますか?
なりません。
下の書き方で以下のように呼び出すと、
DEBUG_WRITE(("hoge..%d\n", hoge));
マクロが展開された時点でこうなります。
debug_write(("hoge..%d\n", hoge));
これは構文エラーです。
DEBUG_WRITEの括弧内、つまり
DEBUG_WRITE(ココ)
にあるものがargの場所に配置されるのですから、当然そうなります。