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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0601
xxxラベルと#deffuncのバグっぽい何か5解決


xxx

リンク

2017/6/1(Thu) 18:46:41|NO.80056

エラーにすべきじゃないかと思ったり

#module #deffunc call str _s gosub *mesx return #deffunc f int _x call "hello" return *mesx mes _x dupptr s, _x, 1, vartype("str") mes s return #global f 50
ラベルと#deffuncが同時に使われることは想定されてないのかな…



この記事に返信する


tds12

リンク

2017/6/1(Thu) 18:56:49|NO.80057

#deffuncなどで登録した引数名・ローカル変数名は
次の#deffunc等が来るまでの有効期限です。
サブルーチンを作る場合は次の#deffunc等が来るまでに書くか、
同じ引数を持つダミーの関数を定義して引数名を再度登録する必要があります。
このとき引数の順番や型、数もそろえたほうが安全です。



tds12

リンク

2017/6/1(Thu) 20:36:48|NO.80059

すみません、相当的外れなこと書いてました。

でもこの裏技、とっても便利なのでエラーになるのは残念かな。
モジュール変数と合わせたgotoからの#deffuncスルーで多態みたいなのは
一度使うとそれなしで書けなくなる中毒性。



xxx

リンク

2017/6/1(Thu) 21:35:22|NO.80060

>モジュール変数と合わせたgotoからの#deffuncスルーで多態
面白そうですね
サンプル見せてもらえませんか



スペース

リンク

2017/6/1(Thu) 22:46:19|NO.80062

_xに_sのメモリアドレスが代入されてるってことですよね?
見れば見るほど不思議・・・



tds12

リンク

2017/6/7(Wed) 18:48:56|NO.80142

>サンプル見せてもらえませんか
↓辺りのをヒントにインタフェースまで応用してました。
「fujidigの雑記」
『[HSP]code_get の TYPE_STRUCT でちゃんとチェックしてない』
http://d.hatena.ne.jp/chaperatta/20081012/1223761738
『[HSP]ラベル型変数を使って無理やり動的メソッド呼び出しを実現してみる』
http://d.hatena.ne.jp/chaperatta/20090620/1245501177

サンプルはまた後で。



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