HP Pascal/iX Programmer's Guide (31502-90023)
7- 18
|||||
| Extensible parameter | One hidden parameter. | First parameter. | Number of actual |
| list | | | parameters passed |
| | | | (excluding hidden |
| | | | parameters). |
|||||
------------------------------------------------------------------------------------------------
|||||
| Multi-dimensional | One hidden parameter | Each one follows | Element size, in |
| conformant array | for each nested | bounds values of | units meaningful to |
| parameters | conformant array. | corresponding nested | the code that indexes |
| | | conformant array. | the array. |
|||||
------------------------------------------------------------------------------------------------
|||||
| Routine parameters | One hidden parameter | Last parameters. | Static link for |
| | for each routine | | containing routine. |
| | parameter. | | |
|||||
------------------------------------------------------------------------------------------------
|||||
| External SPL variable | One hidden parameter | First parameter | Same as SPL |
|||||
------------------------------------------------------------------------------------------------
ANYVAR Parameters
If a routine has ANYVAR parameters, its physical parameter order contains
one hidden parameter for each. In the physical parameter order, each
hidden parameter follows its corresponding ANYVAR parameter. The value
of each hidden parameter is the size of the corresponding ANYVAR
parameter (in bytes).
If the routine specifies the UNCHECKABLE_ANYVAR option, no hidden
parameters are passed for ANYVAR parameters.
The UNCHECKABLE_ANYVAR option is used when calling routines that were not
written in Pascal.
Example 1
$STANDARD_LEVEL 'HP_MODCAL'$
PROGRAM prog;
VAR
x,y,z : integer;
PROCEDURE p ( a : integer;
ANYVAR b, c : integer;
d : integer;
ANYVAR e : integer);
BEGIN {p}
.
.
.
END; {p}
BEGIN {prog}
x := 2;
y := 3;
z := 5;
p(1,x,y,4,z);
END. {prog}