Fixed arrays – HP SunSoft Pascal 4.0 User Manual

Page 145

Advertising
background image

The C–Pascal Interface

121

6

Fixed Arrays

For a fixed-array parameter, pass the same type and size, as in this example:

The

-calign

option is not needed for this example, but may be necessary if

the array parameter is an array of aggregates.

The C function,

FixVec.c

void FixVec(int V[9], int *Sum)

{

int i;

*Sum = 0;

for (i = 0; i <= 8; i++)

*Sum = *Sum + V[i];

}

The Pascal main program,

FixVecMain.p

program FixVecMain(output);

type

TVec = array [0..8] of integer;

var

V: TVec := [0, 1, 2, 3, 4, 5, 6, 7, 8];

Sum: integer;

procedure FixVec(var XV: TVec; var XSum: integer); external c;

begin

FixVec(V, Sum);

writeln(Sum: 3);

end. { FixVecMain }

The commands to compile and
execute

FixVec.c

and

FixVecMain.p

hostname% cc -c FixVec.c

hostname% pc -calign FixVec.o FixVecMain.p

hostname% a.out

36

Advertising