HSP備忘録


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1.HSPでは、サブルーチンで受け取った文字列は読み取り専用

#module
#deffunc test str a
a = "sss" ; error 23 「変数名が指定されていません」
return
#global

sdim moji, 256
moji = "string"
test moji


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2.#defineは #define globalとしないと、サブルーチンに適用されない

#define DEBUG_

#module
#deffunc test
#ifdef DEBUG_
title "デバッグ" ; ←実行されない
#endif
return
#global

test


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3.文字列でも配列になっているものは arrayで引数にしないと駄目

#module

#deffunc test str aaa
title aaa(1) ; error(4) システムエラーが発生しました
return

#global

sdim moji, 100, 3

moji(0) = "りんご"
moji(1) = "いちご"
moji(2) = "かぼちゃ"

test moji


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4.サブルーチンの後の定義は無効

#enum global DEF1 = 0
#enum global DEF2

#module

#deffunc test
title ""+ DEF5 ; 0と表示されてしまう
return

#global

#enum global DEF3 = 0
#enum global DEF4
#enum global DEF5

test


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


一番つらいのは、4.


ファイルが増えてきて、#include をすると、
違うファイルにある定義が使えなくなったりする。