「スコープ (プログラミング)」の版間の差分

削除された内容 追加された内容
m ボット: 言語間リンク 1 件をウィキデータ上の d:Q2137596 に転記
編集の要約なし
3行目:
[[プログラミング (コンピュータ)|プログラミング]]での'''スコープ'''とは、ある[[変数 (プログラミング)|変数]]や[[関数 (プログラミング)|関数]]が特定の名前で参照される範囲のこと。ある範囲の外に置いた変数等は、通常、その名前だけでは参照できない。このときこれらの変数はスコープ外である、「見えない」といわれる。
 
プログラミングでは、予期しない誤作動を避けるためにも、それぞれの作業段階で必要のない名前はできるだけ参照されないようにすることが望ましい(特に、大域変数は便利な場合もあるが、危険でもある)。適切なスたとえば、CERT C コープの判断ディングスタンダードには、仕様に沿ったプログラム「変数と関数の有効範囲構成最小限にする上で重要で」(DCL19-C.)<ref>https://www.jpcert.or.jp/sc-rules/c-dcl19-c.html</ref>というレコメンデーションがある。
 
== スコープとエクステント ==
非常に多くのプログラマがスコープと混同しているものに、エクステント(extent、生存期間 = lifetime とも)がある。スコープは変数などの名前について議論されるものであり、エクステントはその内容について議論されるものである。例えばC言語において、ローカル(関数内)スコープの変数にstaticという修飾を付けると、その名前のスコープは変わらないが、その内容のエクステントは変化する。
 
後述する「[[動的スコープ]]」などにも、厳密にはスコープとエクステントの混同がある( https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node43.html などを参照)。
 
== スコープの種類 ==