先々週の授業で,
- 変数の(コンパイラから見える)有効範囲は,宣言・定義される位置によって,グローバル変数とローカル変数に分類される.
- 変数に結び付けられたオブジェクトの(実行時の)生成・破棄は,static変数とauto変数とで異なる.
- 変数は,「グローバルかローカルか?」と「staticかautoか?*1」の組み合わせで,4種類に分類できそうだが,実際には「グローバルなauto変数」を作ることはできず,残りの3種類が存在する.
- 基本的に,グローバル変数ならstatic変数,ローカル変数ならauto変数であるが,ローカル変数でもstaticをつければstatic変数になる.
と説明していたのですが,Googleで少し調べたところでは,最後だけを説明しているところが多いようです.
*1:externは無視してください.