識別子の宣言方法と記憶域クラス、スコープの関係を表にすると、以下のようになります。
識別子を宣言する場合は、この表を参照して、適切な宣言方法を選択するようにしましょう。
宣言方法 記憶域クラス スコープ 初期化 全てのブロック外 プログラム実行中 プログラム全体 宣言時の一度だけ 全てのブロック外でstatic プログラム実行中 モジュール内 プログラム開始時の一度だけ ブロック内 ブロック内のみ一時的 ブロック内 ブロックに入るたび ブロックの中でstatic プログラム実行中 ブロック内 プログラム開始時の一度だけ malloc関数の使用 malloc()からfree()まで ポインタ変数の宣言による --- 関数の仮引数として 関数ブロック内のみ 一時的関数ブロック内 ---