地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

プリプロセッサを使ったデバッグ法

プリプロセッサ指令を使ってデバッグモードを付けてみる

カウンタ変数iの値を調べるためにprintf文を挿入した九九プログラム 計算途中の結果は何も表示されない。本番の仕様でも計算結果が必要ないがどこかでバグがあるかもしれない

#include <stdio.h>

int main(void)
{
  int i;
  int num;

  printf("Input Base number : ");
  scanf("%d", &num);
  for (i=0; i<19; i++) {
    printf("DEBUG : i = %d\n", i);
    printf("%d\n", num * i);
  }
  return (0);
}

そこで使うのがプリプロセッサ

ifdefでDEBUGが定義されている場合のみ入るケースを追加している。

プリプロセッサ(preprocessor)」という言葉は、直訳するならば「前処理をするもの」、「前処理プログラム」というくらいの意味になります。

#include <stdio.h>

int     main(void)
{
  int i;
  int num;

  printf("Input Base number : ");
  scanf("%d", &num);
  for (i=0; i<19; i++) {
#idfef DEBUG
    printf("DEBUG : i = %d\n", i);
#endif
    printf("%d\n", num * i);
  }
  return (0);
}

define DEBUG 1

とかやってコンパイル時のコンパイラオプションへ指定せずにデバッグモードにしたいすることもできる