>>262

(1) ローカル変数に対して static を使うと
 その関数を抜けても値が保持されたままの変数になる
 (関数内からだけ参照できるグローバル変数みたいな感じ)

(2) グローバル変数および関数に static を使うと
 そのファイル内からだけ参照できる変数になる

(3) クラスのメンバに対して static を使うと
 いわゆるクラスメンバというやつになる
 (インスタンス名.XXX じゃなくて、 クラス名::XXX で参照するやつ)

特にややこしいのが、

// aaa.h
class AAA
{
public:
 static int a; // (3) の意味の static
};

// aaa.cpp
#include"aaa.h"
static int AAA::a = 0; // (2) の意味の static
//↑ こいつに static を付けると変なことになる
// クラスの public 変数なのに、aaa.cpp の内部でしか使えないから。