ESL supports small integer, small float and small string values as function arguments and return values. To indicate that the value for an argument or return value is the "smaller" C type of the corresponding ESL value, use the keyword small before the argument or return value data type in the declaration for the external function. This keyword is supported in declarations to external functions only; it is not supported in variable definitions.
Note: You cannot use the keyword reference with a small argument type.
The following table shows the correspondence between the argument or return type declared in the ESL program and the C data type passed to or returned by the external function. Refer to the function prototype to determine whether the keyword reference was specified.
ESL Argument Type |
Reference Keyword Specified |
Reference Keyword Not Specified |
reference Keyword Only Specified |
Small Keyword Specified |
integer1 |
long * |
long |
void * |
short |
float1 |
double * |
double |
void * |
float |
boolean2 |
long * |
long |
void * |
NA |
structure STRUCTDEF_ NAME |
Structure STRUCTDEF_NAME*
Warning issued |
Structure STRUCTDEF_NAME * |
void * |
NA |
string1 |
HSTRING * (PHSTRING) |
HSTRING |
void * |
char |
string field in structure with no using clause |
PHSTRING |
HSTRING |
void * |
char |
string field in structure with using string clause |
char * |
HSTRING |
void * |
char |
string field in structure with using external clause |
void * |
HSTRING |
void * |
char |
1This type can be a simple variable, an array element, or a field in a structure.
2This type must be a simple variable; it cannot be an array element or a field in a structure.