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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0923
MZ-SOFT#defcfuncの使い方なのですが、2解決


MZ-SOFT

リンク

2019/9/23(Mon) 21:28:32|NO.88495

これ、コンパイル・実行ができてもなにも表示されません。
どこが間違っているのでしょうか?

ちなみにHSPはまったくの初心者です。


#module int a=0 int b=0 Func a b;関数呼び出し cls 0 color 0,0,0 pos 10,10 mes a;10と表示したい mes b;20と表示したい #defcfunc local Func int a, int b a=10 b=20 return #global



この記事に返信する


よっぴー

リンク

2019/9/23(Mon) 22:27:57|NO.88496

まず#defcfunc以前に
int a=0という書き方はおかしいです。
intは型変換の関数なので変数を作成するものではありません。
正しくはdim aです。
そして、このソースの場合#defcfuncに指定するパラメータはintではなくvarです。
パラメータに指定されているa、bは直接操作はできません。

おそらく#moduleより下から#defcfuncより上まで実行したいように見えますが、
前提としてモジュール空間は別空間として扱われるのでコンパイルしても無視されます(確か)
そして#defcfuncは関数をつくるものなのでFunc a bという記述もそもそも間違っています
というか命令の場合でもaとbの間にコンマが入っていないので実行できません。
余計なお世話かもしれませんが、#deffuncなどの高度な命令は基本的な文法を勉強してから扱うようにしましょう。
命令の書き方もままならないようならまだ早いです。

自分で考えるのが一番だと思いますが、修正したソースを載せておきます。

#module #deffunc Func var a, var b a=10 b=20 return #global dim a dim b Func a,b;関数呼び出し cls 0 color 0,0,0 pos 10,10 mes a;10と表示したい mes b;20と表示したい



MZ-SOFT

リンク

2019/9/23(Mon) 22:54:30|NO.88497

まことにありがとうございました。う〜ん、手元にあるHSPの本には書いてないんだよな〜。



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