その自作関数を呼び出したときに、
error 4 : パラメーター式の記述が無効です (24行目)
--> method2(g_nvalue1, g_nvalue2)
のエラーが発生してしまいます。
これが自分の環境でしか発生しないのか、
ほかの皆さんの環境でも発生しているのか。
発生したことがある方は教えて下さい。
もし過去に同じスレが立っていたらすみません。
自分の環境は、HSP3.2.1です。
(HSP3.2で発生して、HSP3.2.1を入れなおしても発生しました。)
あと確認ですが、int型の変数に値を代入しようとすると
-->変数名が指定されていませんとエラーになります。
過去スレ「旧疑似関数命令におけるエイリアス禁止が有効になっている件について」で
「寧ろ、var型以外のモジュール命令やモジュール関数の引数が
定数扱いとなることを明記すべきでしょう。」とい回答がありました。
試しに引数をvar型にしてみたら大丈夫でした。
これはvar・array型以外の型の引数は、関数内では、
値を変更できないという仕様でよろしいのでしょうか?
以上よろしくお願いします。
下記は、確認の為に作成したスクリプトです。
#module SampleModule // 戻り値無しの、引数が1つの自作関数 #deffunc method1 int param1 mes "method1" return // 戻り値無しの、引数が2つの自作関数 #deffunc method2 int param1, int param2 mes "method2" return // 戻り値有りの、引数が2つの自作関数 #defcfunc method3 int param1, int param2 mes "method3" return param1 // 戻り値有りの、引数が2つの自作関数 // さらに関数内で、別の戻り値有りの自作関数を呼ぶ #defcfunc method4 int param1, int param2 mes "method4" // 引数に戻り値を代入しようとするとエラー param1 = method3(param1, param2) // 別の変数を作成し、戻り値を代入しようとするとOK param3 = method3(param1, param2) return param1 // 戻り値有りの、引数が2つの自作関数 // さらに関数内で、別の戻り値有りの自作関数を呼ぶ // 引数の型をvarにする #defcfunc method5 var param1, var param2 mes "method5" param1 = method3(param1, param2) return param1 #global // グローバル変数 g_nValue1 = 0 g_nValue2 = 0 *HspMain method1(g_nValue1) // コメントを外すとエラーになる // method2(g_nValue1, g_nValue2) g_nValue2 = method3(g_nValue1, g_nValue2) g_nValue2 = method4(g_nValue1, g_nValue2) g_nValue2 = method5(g_nValue1, g_nValue2) stop end