HSPはBASICがモデルです。
BASICも変数の宣言という概念は基本的になく(種類によってはあったり必須な場合もあり)
使用した時点で変数が作成(メモリ領域が確保)されます。
で、変数は自動で代入した型に変更されます(デフォルトは数値型)。
mes a ; 数値型 (0=デフォルト)
a = 1 ; 数値型
a = 0.1 ; 実数型
a = "0" ; 文字列型
もし、現在の型と異なる型の値を代入した場合は新しい値の型に自動で変更されます。
(配列などは初期化されてしまいます)
また、可能な限り左の型に自動キャストされます。
a = 1 + 1.1 + "1" ; 1 + int(1.1) + int("1") = 1 + 1 + 1
mes a ; 3 (数値)
a = "1" + 1 + 1.1 ; "1" + str(1) + str(1.1) = "1" + "1" + "1.100000"
mes a ; "111.100000" (文字列)
stop
dim/sdimとdimtype、マクロであるddimとallocはどちらかというと配列も含めて初期化する
のによく使用されます。
また、最初から配列を指定できるので余計な自動確保が起こらない分、多少高速になる...
かもしれません。