IDLの言語構造一覧
下の表はIDLにおけるデータの型と扱うことのできるデータの範囲を表したもである。
C言語との大きな違いはIDLのBYTE型がC言語のunsigned charに対応しているぐらい。
なので言語構造はC言語と基本的には変らない。
|
配列名
|
型
|
範囲(10進数)
|
備考
|
| BYTE | byte | 0〜255 | 1byte 符号なし |
| INT | Integer | -32,768〜32,767 | 2byte 整数 |
| UINT | Unsigned Integer | 0〜65533 | 2byte 整数 |
| LONG | 32-bit signed integer | -2147483648〜2147483647 | 4byte 整数 |
| ULONG | 32-bit unsigned integer | 0〜4294967295 | 4byte 整数 |
| 64bit LONG | 64-bit signed integer | -922,37203685477,808〜922337203685477807 |
8byte 整数 |
| 64bit ULONG | 64-bit unsigned integer | 0〜1844674,07370955,615 | 8byte 整数 |
| FLOAT | 32-bit, single-precision, | -10^38〜10^38 | 4byte 実数 |
| DOUBLE | 64-bit, double-precision | -10^308〜10^308 | 8byte 実数 |
| COMPLEX | A real-imaginary pair of single-precision | ** | 複素数 |
| DCOMPLEX | real-imaginary pair of double-precision | ** | 倍精度複素数 |
配列宣言関数
下表はデータを格納する配列をつくる時に宣言する関数。
例のようにA=INTARR(300,300,3)と宣言すると、XYZ平面において300*300*3の要素を持った整数型の配列Aがでる。
配列は最大8次元まで宣言することができる。
配列の限界はマシンのスペックに依存する。
|
関数
|
説明
|
例
|
| STRARR | 文字型配列の宣言 | A=STARR(10,10) |
| BYTARR | バイト型配列の宣言 | ** |
| INTARR | 整数型配列の宣言 | A=INTARR(300,300,3) |
| UUINTARR | 符号なし整数型配列の宣言 | ** |
| LONARR | ロングワード型配列の宣言 | ** |
| LON64ARR | 64ビットロングワード型配列の宣言 | ** |
| ULONARR | 符号なしロングワード型配列の宣言 | ** |
| ULON64ARR | 64ビット符号なしロングワード型配列の宣言 | ** |
| FLTARR | 浮動小数点型配列の宣言 | A=FLTARR(10,20,30,5) |
| DBLARR | 倍精度浮動小数点型配列の宣言 | ** |
| COMPLEXARR | 複素数配列の宣言 | ** |
| DCOMPLEXARR | 倍精度複素数配列の宣言 | ** |
型変換関数
存在する配列の型を別の型に変換する関数。
例のように、浮動小数点型から整数型に変換すると、小数点以下は切り捨てられる。
四捨五入したいときはFIX(値+0.5)になる。
|
関数
|
説明
|
例
|
| STRING | 文字列型に変換 | ** |
| BYTE | バイト型に変換 | ** |
| FIX | 整数型に変換 | A=1.7 → B=FIX(A) → print, B → 1 |
| UINT | 符号なし整数型に変換 | ** |
| LONG | ロングワード型に変換 | ** |
| LONG64 | 64ビットロングワード型に変換 | ** |
| ULONG | 符号なしロングワード型に変換 | ** |
| ULONG64 | 64ビット符号なしロングワード型に変換 | ** |
| FLOAT | 浮動小数点型に変換 | A=1 → B=FLOAT(A) → print, B → 1.00000 |
| DOUBLE | 倍精度浮動小数点型に変換 | ** |
| COMPLEX | 複素数に変換 | ** |
| DCOMPLEX | 倍精度複素数に変換 | ** |
以上を必要に応じて覚えるべし。