/*最低必要な知識かな?*/
#module test ;モジュールの名前・名前空間に似て変数にスコープが有る。@test
#deffunc test1 int p1,double p2,str p3,var p4,array p5 ;直接値を返さない命令
mes p1 : ;p1= 値渡
mes p2 : ;p2= 値渡
mes p3 : ;p3= 値渡
mes p4 :p4 = 987 ;p4=ii 参照
mes p5(1) :p5 = 1,2,3,4,5 ;p5=nn 参照(配列)
return 555 ;整数ならstat文字列ならrefstrに値が返る
#defcfunc test2 str p1,local qq ;直接値を返す命令
qq = p1+__HSPVER__ ;localは一時変数
Version = qq ;適当な変数を使って見る
return qq
#global ;名前空間を@に戻す
;test1
ii = 123 ;整数
dd = 3.141592 ;実数
ss = "STRINGS" ;文字列
nn = 9,8,7,6,5 ;配列
test1 ii,dd,ss,ii,nn ;
mes stat ;返された結果(この場合整数)
mes ii ;改変された値
repeat 5 :mes nn(cnt) :loop ;〃
;test2
mes test2( "HSP Version = ") ;
mes refstr ;この場合文字列なのでrefstrも〃値
mes Version ;この場合は@の変数参照なので未定義
mes Version@test ;名前空間を指定して中身を見る
;標準命令の名前空間は@hsp