"e"の字を使ってはいけない? 

HSPでゲームを作っていますが、
その作業中、謎のバグに遭遇しました。

以下、発生条件。
1 : 2次元配列 arr を作成する。
    検証したのは整数型。 変数名、要素数は問わない。
2 : 小文字の"e"から始まる定数を #const で宣言する。
    #define や #enumでも起こせそう。
3 : arr.(数値).(手順2の定数) = (適当な数値) とし、代入する。
4 : 値は正しい要素に代入されず、定数名と同じ名前の変数が作られてしまう。
    値はarr.(数値).0 へ代入されている。

HSPのバージョンは3.32 OSはWin8.1です。
3.4で直っていれば、あるいはこのPCだけならば杞憂なのですが。
*--*
追記に検証用コード。

;const_bug.hsp
;
#const e_lbereth 3
;#const E_lbereth 3 ;先頭大文字に置換するとバグは起きない
;#const salbereth 3 ;この名前でもバグは起きない
;e_lbereth = 3 ;変数でもバグは起きない

dim hen, 10, 10

hen.1.e_lbereth = 100 ;定数と同名の変数が作られてしまう

mes "e_lbereth = " +e_lbereth

mes "hen.1.3 = " +hen.1.3
mes "hen.1.e_lbereth = " +hen.1.e_lbereth ;上の値と一致するはず
;

; 再現できたら教えてくださいな。
web拍手 by FC2

コメントの投稿

Please, write a comment in Japanese(or use web translator).














管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://gridnote.blog62.fc2.com/tb.php/1483-53f4a08a