HSPで擬似構造体

HSPというのは小規模なソフトを作るときに非常に使いやすいんですが、それ以上になってくるとソースがごちゃごちゃになってきますよね。いや、ソースの書き方が汚いだけかもしれませんが。
構造体が使えればソースがスッキリしそうですね。
早速見て行きましょう。


宣言するときはこちら。

#define volume 0
#define expression 1
dim midi,2

参照するときはこちら。

mes "volume : " + midi.volume
mes "expression : " + midi.expression

HSPには、配列を参照する方法が2つあります。

dim n,2,2
mes n(0,1)
mes n.0.1

2行目の n(0,1) はHSP3で追加された配列参照の方法です。
3行目の n.0.1 はHSP2からある方法です。
今回の擬似構造体では3行目の配列参照の方法を使っています。


例えば。

dim n,2
mes n.0

この場合で言えば、0の部分を定数に置き換えてしまえばいいわけです。

#define first 0
#define second 1
dim n,2
mes n.first

構造体っぽいですか?っぽいですね。「っぽい」っていうのは見た目に関わってくるので割と大事。

これをC言語で書くとこうなります。

struct{
    int first;
    int second;
}n;

わお簡潔。名前に意味はありません。

2次元配列でも同じことをすればいいわけです。


もう1つ例をあげると、時間の情報を格納する変数もこれを使えばスッキリまとまります。
こんな感じ。

#define sec 0
#define min 1
#define hour 2
dim time,3
mes time.hour + "時" + time.min + "分" + time.sec + "秒"

お好みで年月日も追加できます。



お疲れ様でした。