HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0913
黒伊耶那岐モジュール内サブルーチンでエイリアスを使いたい。2未解決


黒伊耶那岐

リンク

2010/9/13(Mon) 19:47:13|NO.34979


#module #deffunc f_test int p_X mes p_X gosub *sub_a return ;------------------- *sub_a dialog str(p_X) return #global f_test 12
だと上手くいきますが、

#module #deffunc f_test int p_X mes p_X gosub *sub_a return #deffunc f_test2 return ;------------------- *sub_a dialog str(p_X) return #global f_test 12
のように間に他の命令が入ると上手くいきません。

このようなコーディングが強引なことも、v_X=p_Xと変数に入れれば解決することも重々理解はしておりますが、できればエイリアスのまま遠隔な位置にあるサブルーチンに渡せると色々と都合がよいので、何かよい方法がないものか、皆様のお知恵を拝借したく、厚かましくもお尋ねする次第であります。
何卒よろしくお願い致します。



この記事に返信する


木村

リンク

2010/9/13(Mon) 20:49:14|NO.34982

 一応、同一エイリアスが定義されていれば遠隔地だろうと値は繋がれます。以下は一例

#module #deffunc f_test int p_X mes p_X gosub *sub_a return #deffunc f_test2 int p_X return ;------------------- *sub_a dialog str(p_X) return #global f_test 12

 ……しかし僭越ながら申し上げますに、ここまでするならlocal指定したユーザー定義命令で
処理した方が良い気がします。
 ただ、新規のユーザー定義命令だと、関連する引数やローカル変数を全部丸ごと引数として
受け渡さなければなりませんので、一長一短ですね……



info

リンク

2010/9/18(Sat) 23:54:57|NO.35041

 変数に代入して、使用しないのでしたら。
 ラベルではなく#defineマクロを使用する手もあります。

 少し読みにくくなりますが。


#module #define dialog_ \ dialog p_x #deffunc f_test int p_x dialog_ return #global f_test 122



ONION software Copyright 1997-2021(c) All rights reserved.