6

The C function, FixVec.c

Fixed Arrays

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

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

The commands to compile and execute FixVec.c and

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 }

hostname% cc -c FixVec.c

hostname% pc -calign FixVec.o FixVecMain.p hostname% a.out

36

The -calignoption is not needed for this example, but may be necessary if the array parameter is an array of aggregates.

The C–Pascal Interface

121

Page 145
Image 145
HP SunSoft Pascal 4.0 manual C function, FixVec.c, Pascal main program, Commands to compile and execute FixVec.c