staticの意味

C++において、staticは複数の意味を持ちます。

関数内に書けば静的変数。
グローバルに書けば内部リンケージ変数、関数。
メンバ変数に書けば静的メンバ変数(ただし別途実体定義が必要)。

さらにinline指定と組み合わせることができ、

グローバルにinline staticした場合、staticが優先され内部リンケージ変数、関数となりますが、
メンバ変数として使ったならば、inlineが優先され全ての翻訳単位で同一のアドレスを指すようになります。

調べていたら、C++ではconst変数というだけで内部リンケージになるそう。(C言語は普通に外部リンケージ)
何もわからなくなってきた。