基本型とはコンパイラが認識できる変数の種類のことをいいます。
分類 | 基本型 | 概要 | バイト数 | 値の範囲 | 型宣言文字 |
整数 | Char | 符号付き8ビット整数型 | 1 | -128 〜 127 | |
Byte | 符号無し8ビット整数型 | 1 | 0 〜 255 | ||
Integer | 符号付き16ビット整数型 | 2 | -32768 〜 32767 | % | |
Word | 符号無し16ビット整数型 | 2 | 0 〜 65535 | ||
Long | 符号付き32ビット整数型 | 4 | -2147483648 〜 2147483647 | ||
DWord | 符号無し32ビット整数型 | 4 | 0 〜 4294967295 | ||
Int64 | 符号付き64ビット整数型 | 8 | -9223372036854775808 〜 9223372036854775807 | ||
QWord | 符号無し64ビット整数型 | 8 | 0 〜 18446744073709551616 | ||
浮動小数点 | Double | 倍精度浮動小数点型(64ビット) | 8 | 1.7E +/- 308 (15 桁) | # |
Single | 単精度浮動小数点型(32ビット) | 4 | 3.4E +/- 38 (7 桁) | ! | |
文字列 / バイナリデータ | String | 文字列型 | 可変長 | $ | |
ポインタ | BytePtr | Byte型データを示す符号無し32ビット整数型 | 4 | &H0 〜 &HFFFFFFFF | |
WordPtr | Word型データを示す符号無し32ビット整数型 | 4 | &H0 〜 &HFFFFFFFF | ||
DWordPtr | DWord型データを示す符号無し32ビット整数型 | 4 | &H0 〜 &HFFFFFFFF | ||
*QWord | QWord型データを示す符号無し32ビット整数型 | 4 | &H0 〜 &HFFFFFFFF | ||
SinglePtr | Single型データを示す符号無し32ビット整数型 | 4 | &H0 〜 &HFFFFFFFF | ||
DoublePtr | Double型データを示す符号無し32ビット整数型 | 4 | &H0 〜 &HFFFFFFFF | ||
VoidPtr | 型が不明なデータを示す符号無し32ビット整数型 | 4 | &H0 〜 &HFFFFFFFF |
文字列 / バイナリデータを扱うString型データは、基本型の中でも特別なデータ型にあたります。他の基本型と比較し、下記の相違点があります。
・データサイズが可変長である
・データを格納するためのメモリ確保、解放が自動的に行われる
・データを格納するためのメモリがヒープ領域に設けられる
・データ部の前部分(通常はプログラマーから見えない)にデータサイズを格納するための32ビット値(4バイト)が存在する
String型変数のメモリ確保は変数宣言時に行われます。また、値が代入されると以前のデータは自動的に破棄され、新しいデータ用のメモリが確保されます。データの破棄は、グローバル変数についてはプログラム終了時に、ローカル変数については関数抜け出し時に自動的に行われます。
String型は従来のBasic言語との互換性をとるために存在します。文字列 / バイナリデータを扱う場合は、特に理由がない限り、プログラマーが任意的にメモリ確保、解放を行い、BytePtr型として文字列データを管理する手法を推奨します。
String型をBytePtr型で表現したい場合、BytePtr型をString型で表現したい場合は、下記の関数をご利用ください。
・StrPtr関数 … String型データの先頭ポインタをBytePtr型で返します
・MakeStr関数 … BytePtr型データが示す、終端記号がNULL文字のデータを元にString型データを作成し、それを返します。