C & C++ FAQ
|
C++ | 関数が呼び出された回数を調べるにはどうすればよいですか。 |
静的記憶域期間をもつオブジェクトの初期化は、main関数実行開始前の1度だけです(静的記憶域期間をもつオブジェクトは初期化子を与えなくても0に初期化されますので=0は不要ですが、プログラムの可読性を考えると初期化子を与えるべきです)。関数が呼び出されるたびにcountの値が一つずつ増えますから、この関数が呼び出された回数が保持されることになります。void func(void) { static int count = 0; /* 初期化されるのは1度だけ */ 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 |