デバッグ用の関数dbg_printf(可変引数)を定義します。
DEBUG_PRINTFが定義されていれば(サンプルプログラムの5行目)dbg_printf()を実行し、DEBUG_PRINTFが定義されいなければ、何も実行をしません。
デバッグ用の関数はバグの発見や異常終了の原因等の解析に有用です。
/****************************************************************************/
#include <stdio.h>
#include <stdarg.h>
// デバッグコードの定義
#define DEBUG_PRINTF
#ifdef DEBUG_PRINTF
// デバッグ用関数の定義
int dbg_printf(const char *format, ...)
{
int r;
va_list va;
va_start(va, format);
// デバッグ用関数を使用する際は[DEBUG]と表示されるようにする
r = printf("[DEBUG]:");
r += vprintf(format, va);
va_end(va);
return r;
}
#else
#define dbg_printf 1 ? (void) 0 : printf
#endif
int main()
{
// 変数定義
int i;
int sum;
// 変数の初期化
sum = 0;
// 1から10までの和を求める処理
for(i = 1; i <= 10; i++)
{
sum += i;
dbg_printf("sum(%2d) = %2d\n", i, sum); // デバッグ用の関数を使用
}
// 合計の表示
printf("sum(%2d) = %2d\n", 10, sum);
return 0;
}
/****************************************************************************/
左の結果:デバッグ用関数を使用(プログラム5行目でDEBUG_PRINTFを定義)
右の結果:デバッグ用関数を不使用(プログラム5行目「#define DEBUG_PRINTF」をコメントアウト)

Copyright(c) 2010 , cgengor
このWebページの内容を無断で複製または転載することを禁じます。
このWebページの情報を利用することにより発生したいかなる損害について著作権保有者はいっさいの責任を負いません。