記憶クラス 記憶クラス : 変数の有効範囲の違い 変数には有効範囲(空間:scope/時間:extension)がある 空間(scope) : その変数がプログラムのどの範囲で有効か (静的/コンパイル時) その変数名の変数が参照できる場所の範囲 時間(extension) : その変数が何時から有効で何時無効になるか(動的/実行時) その変数名の変数が参照できる期間の範囲 例: 局所(auto)変数 : s:関数内, e:関数の実行時 様々な記憶クラス 大域変数 (関数の外に宣言) : s:プログラム内全部, e:プログラム実行時 static 変数(ファイル/関数内) : s:ファイル/関数, e:プログラム実行時 動的領域 (alloc/free) : s:ポインタ変数に従う, e:alloc から free まで 大域変数の扱い 全ての変数で共有可能 (便利だが危険) システムで利用されている (stdin, stdout, stderr) 自分では使わない方が良い (栗野は全面「禁止」)