BohYoh.comトップページへ
C & C++ FAQ
目次

C++ 関数が呼び出された回数を調べるにはどうすればよいですか。

 静的記憶域期間をもつオブジェクトは、プログラムの開始から終了まで存続します。関数でそのようなオブジェクトを用意しておき、呼び出されるたびに値をインクリメントしましょう。関数の実現例を示します。

void func(void) { static int count = 0; /* 初期化されるのは1度だけ */ count++; /* 値を一つ増やす */ /* … */ }

静的記憶域期間をもつオブジェクトの初期化は、main関数実行開始前の1度だけです(静的記憶域期間をもつオブジェクトは初期化子を与えなくても0に初期化されますので=0は不要ですが、プログラムの可読性を考えると初期化子を与えるべきです)。関数が呼び出されるたびにcountの値が一つずつ増えますから、この関数が呼び出された回数が保持されることになります。
■ 根拠 ■
標準C §6.1.2.4 Storage duration of objects
標準C99 §6.2.4 torage duration of objects
標準C++ §3.7.1 Static storage duration

戻る

BohYoh.comロゴ