下の表は、EGL プリミティブ型と C プリミティブ型を対応させたものです。 call ステートメントによって C 関数を呼び出す場合に、この表を使用します (call ステートメントでの C 関数の呼び出しを参照)。
| EGL プリミティブ | C の型 |
|---|---|
| INT | int (符号付き 4 バイト整数) |
| SMALLINT | short (符号付き 2 バイト整数) |
| BIGINT | long long (符号付き 8 バイト整数) |
| NUM | COBOL ゾーン・フォーマット。 ASCII の場合、正数の符号ビットは x30 になり、 負の数値の符号ビットは x70 になります。 EBCDIC の場合、正数の符号ビットは xF0 になり、 負の数値の符号ビットは xD0 です。 |
| NUMC | COBOL ゾーン・フォーマット。 ASCII の場合、正数の符号ビットは x30 になり、 負の数値の符号ビットは x70 になります。 EBCDIC の場合、正数の符号ビットは xC0 になり、 負の数値の符号ビットは xD0 になります。 |
| DECIMAL、MONEY | COBOL パック・フォーマット。 正数の符号ビットは xC になり、 負の数値の符号ビットは xD になります。 |
| PACF | COBOL パック・フォーマット。 正数の符号ビットは xF になり、 負の数値の符号ビットは xD になります。 |
| FLOAT | double |
| SMALLFLOAT | float |
| BOOLEAN | char。1 は TRUE を表し、0 は FALSE を表します。 |
| HEX | 符号なし char |
| CHAR | char |
| MBCHAR、DBCHAR | char。mbstowcs を使用して、stdlib.h を wchar_t に変換します。 |
| UNICODE、STRING | char。UTF-16 でエンコードされたデータ (1 文字につき 2 バイト) を持ちます。 mbstowcs を使用して、stdlib.h を wchar_t に変換します。Windows および Linux の場合、データの配列はリトル・エンディアンです。 その他のシステムの場合、データの配列はビッグ・エンディアンです。 |
| DATE | char。yyyMMdd 形式で、「0」から「9」までの数字が格納されます。 |
| TIME | char。HHmmss 形式で、「0」から「9」までの数字が格納されます。 |
| TIMESTAMP | char。「0」から「9」までの数字が格納されます。 |
| INTERVAL | char。「+」または「-」で始まり、「0」から「9」までの数字が 続きます。 |
テキスト型 (CHAR、MBCHAR、DBCHAR、UNICODE、STRING) の値、データ型および時刻型 (DATE、TIME、TIMESTAMP、および INTERVAL) の値、および HEX の値は、NULL バイトでは 終わりません。 StrLib.setNullTerminator を使用すると、末尾ブランクを NULL に変換できます。また、StrLib.setBlankTerminator を使用すると、 末尾 NULL をブランクに変換できます。
構造化レコードの場合、EGL は最低レベルのフィールドのデータを渡します。 C の struct は、レコードと同じ構造で定義できます。