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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0131
HiRoSHi変数の定義について2解決


HiRoSHi

リンク

2007/1/31(Wed) 01:46:51|NO.5316

HSPでは、新しく変数を使う際定義などをせずに使うことができるみたいですが

dim, sdimなどで定義する意味というか意義というかわざわざ定義する理由は何なのでしょうか?

また、新しく変数を使う際の変数の型は何になるのでしょうか?(定義なしと定義ありそれぞれお願いします。)



この記事に返信する


Irisawa

リンク

2007/1/31(Wed) 02:14:10|NO.5317

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はどちらかというと配列も含めて初期化する
のによく使用されます。
また、最初から配列を指定できるので余計な自動確保が起こらない分、多少高速になる...
かもしれません。



HiRoSHi

リンク

2007/1/31(Wed) 20:32:13|NO.5331

わかりやすい回答をありがとうございました。



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