C言語にはブロックスコープがあるんですよ。
staticは関数を抜けても値が保持される。かつ2回目は初期化処理がされない。