- PR -

変数の範囲

投稿者投稿内容
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-10-04 13:00
ん〜、コンパイラを作った事がないので完全に推測で話しますが、
ぶっちゃけ、最初に全部宣言されちゃうんですけどね。
例えば、
コード:
void F()
{
	int a;
	return;

	for( int i = 0; i < 10; i++ )
	{
		int b;
	}

	for( int i = 0; i < 10; i++ )
	{
		int b;
	}
}


なんてコードがあった場合,b も最初に宣言されます。
2つめの b は何か適当な名前に変えられます。
IL を見たら何かそんな感じです。

_________________
囚人のジレンマな日々
kyo
会議室デビュー日: 2006/05/17
投稿数: 18
投稿日時: 2006-10-05 10:07
私はJavaしか知らないので、未記入さんの指摘に深くうなづかされました。

後知恵で申し訳ありませんが、
引用:

だーやんさんの書き込み (2006-10-03 23:41) より:
'Forブロック内で変数indexを宣言
For index as Integer = 0 to 10
'処理
Next
'Forブロックを抜けたので変数indexが使用できないので再宣言
Dim index as Integer




コード:

Dim index as Integer 
For index as Integer = 0 to 10 
'処理 
Next 


とコンパイラ的に同じ意味であると書けば、こんなに伸びなかった
のではないでしょうか?

スキルアップ/キャリアアップ(JOB@IT)