The univ arrays – HP SunSoft Pascal 4.0 User Manual
Page 146
Advertising

122
Pascal 4.0 User’s Guide
6
The
univ
Arrays
The
univ
arrays that are
in
,
out
,
in out,
or
var
parameters pass by
reference.
Here is an example:
The C function,
UniVec.c
void UniVec(int V[3], int Last, int *Sum)
{
int i;
*Sum = 0;
for (i = 0; i <= Last; i++)
*Sum += V[i];
}
The Pascal main program,
UniVecMain.p
program UniVecMain(output);
type
TVec = array [0..9] of integer;
var
Sum: integer;
V: array [0..2] of integer;
procedure UniVec(var V: univ TVec; in Last: integer;
var Sum: integer);
external c;
begin
V[0] := 7;
V[1] := 8;
V[2] := 9;
UniVec(V, 2, Sum);
writeln(Sum);
end. { UniVecMain }
The commands to compile and
execute
UniVec.c
and
UniVecMain.p
hostname% cc -c UniVec.c
hostname% pc -calign UniVec.o UniVecMain.p
hostname% a.out
24
Advertising