c言語 デバック文の出力方法

(1)DEBUG_PRINT()の関数をマクロ定義します。#define DEBUG_PRINT(…) printf(“%s(%d) %s:”, __FILE__, __LINE__, __func__),printf(“Debug: %s\n”, __VA_ARGS__)

※1)「ファイル名」、「行番号」、「関数名」はプリプロセッサによって標準で定義されたマクロを使います。
項目     マクロ名            出力指定子
ファイル名  __FILE__             %s
行番号   __LINE__             %d
関数名   __func__、または__FUNCTION__ %s

※2)DEBUG_PRINT(…) の可変個数の引数”…”は、”__VA_ARGS__”に展開されます。

(2)条件コンパイルを利用することで、出力を無効化します。「DEBUG」が定義されている場合、マクロは”DEBUG_PRINT”で定義したマクロが展開され、「DEBUG」が定義されていない場合、マクロは何も展開しません。

debug_sample1.c

実行例

(3)DEBUG_PRINTの引数にエラー番号を追加

debug_sample1.c

end