【MEL】グローバル変数の使い方 (注意点あり)

 MELでのグローバル変数の使い方です。

 
{ 
    global int $gInt = 10; 
    test(); 
} 
  
global proc test(){ 
    global int $gInt; 
    print $gInt; 
} 
// 結果 
10 

 グローバル変数は関数ごとに宣言が必要。
 7行目を削除してしまうと、宣言がないため8行目がエラーになります。
 ちなみに初期化は定数値しか受け付けてくれません。

注意点!初期化は1回の宣言につき一回しか行われない

 
{ 
    global int $gInt; 
    test(); 
    $gInt = 3; 
    test(); 
} 
  
global proc test(){ 
    global int $gInt = 5; 
    print( $gInt + "\n" ); 
} 
// 結果 
5 
3 

 上記のソースに関して、結果が5,5でないところに注意
 test()が一度目に呼び出された際(3行目)には初期化の5を実行(9行目)しますが、二回目のtest()(5行目)の際には初期化(9行目)を実行しないので、test()呼び出し(5行目)直前に代入した3(4行目)の方が格納されたままになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です