内部静的変数は、関数の中で宣言され、その関数が終了しても、その値は保持され、 再度その関数が呼ばれたとき以前と同じ値を持っている。
外部静的変数は、関数の外部で宣言されるものでコンパイルされるモジュール単位では 参照することができるが、他のモジュールからは参照ができない変数である。
以上の内容をまとまると以下のようになる。
自動 | レジスタ | 静的宣言 | グローバル | 外部宣言 | |||
宣言 | 宣言 | 外部 | 内部 | 宣言 | 宣言 | ||
スタック上 | ○ | ○ | × | × | × | × | |
メモリ上 | × | × | ○ | ○ | ○ | ○ | |
関数内宣言 | ○ | ○ | × | ○ | × | ○ | |
関数外宣言 | × | × | ○ | × | ○ | ○ |