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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
1016
名無しのどん兵衛#deffunc命令のパラメータタイプについて1未解決


名無しのどん兵衛

リンク

2023/10/16(Mon) 15:56:51|NO.100266

#deffunc命令の、例えばintとかstrとか、そのようなパラメータタイプを、
一つのエイリアス名に複数組み込みたいです。例えば、
Command p1 ; p1は変数か文字列を入力
などです。
よろしくお願いします。



この記事に返信する


沢渡

リンク

2023/10/16(Mon) 18:54:25|NO.100272

「変数か文字列かの判別」というのはかなり厳しそうですが、たとえば
「引数に整数や実数を指定した場合は文字列に変換して処理を行う」とか、
「引数の型を判別して処理を分岐させる」ようなことは
マクロを噛ませることで可能なのではないでしょうか?
たとえば前者の例、

#module //文字列の左右を入れ替えて返す。引数は文字列だけでなく整数や実数でも可。 #define global ctype swaptext(%1) _swaptext(str(%1)) #defcfunc _swaptext str _text text=_text : l=strlen(text) sdim res,l+1 repeat l poke res,cnt,peek(text,l-cnt-1) loop return res #global mes swaptext(12345678) //整数 mes swaptext(M_PI) //実数 mes swaptext("abcdefg") //文字列
後者の例、

#module #define global hoge(%1) _tmp_=%1 : _hoge _tmp_ #deffunc _hoge var v mes v switch vartype(v) case 2 mes "これは文字列です" swbreak case 3 mes "これは実数です" swbreak case 4 mes "これは整数です" swbreak swend return #global hoge 123 hoge 3.14 hoge "あいうえお"



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