ローカル・スコープ

名前がブロックで宣言される場合は、その名前にはローカル・スコープ またはブロック・スコープ があります。 ローカル・スコープがある名前は、そのブロック、およびそのブロック内で囲まれたブロックで使用できますが、 使用する前に名前を宣言する必要があります。ブロックを終了すると、ブロックに宣言された名前は、 使用できなくなります。

関数のパラメーター名には、その関数の最外部ブロックのスコープがあります。 さらに、関数が宣言されていて、定義されていない場合、 これらのパラメーター名は、関数プロトタイプ・スコープを持っています。

あるブロックが別のブロックの内側でネストされると、外部ブロックからの変数は、 通常、ネストされたブロック内で可視になります。 ただし、ネストされたブロック内の変数の宣言が、 囲みブロック内で宣言されている変数と同じ名前を持っている場合、 ネストされたブロック内の宣言は、囲みブロック内で宣言された変数を隠蔽します。 オリジナルの宣言は、プログラム制御が外部ブロックに戻されるときに、復元されます。 これは、ブロックの可視性 と呼ばれます。

ローカル・スコープ内のネーム・レゾリューションは、名前が使用されている即時スコープ内か ら開始され、次に、外側の囲みスコープを処理します。 ネーム・レゾリューション中のスコープの検索順序によって、情報隠蔽の現象が生じます。 囲みスコープ内の宣言は、ネストされたスコープ内に同じ ID の宣言がある場合、この宣言によって隠蔽されます。

関連参照

IBM Copyright 2003