Non-pascal procedures – HP SunSoft Pascal 4.0 User Manual

Page 151

Advertising
background image

The C–Pascal Interface

127

6

The

-calign

option is not needed in the previous example, but may be

necessary if the record contains aggregates.

Non-Pascal Procedures

When you use the

-xl

option in compiling Pascal code, you can use the

nonpascal

keyword to declare that an external procedure is written in

another language. This keyword generally causes everything to be passed by
reference.

The Pascal main program,

VarRecMain.p

program VarRecMain;

type

vr = record

case tag: char of

'a': (ch1, ch2: char);

'b': (flag: boolean);

'K': (ALIGN: integer)

end;

var

x: vr;

procedure VarRec(var d: vr); external c;

begin

x.tag := 'a';

x.ch1 := 'a';

x.ch2 := 'b';

VarRec(x);

writeln(x.ch2)

end. { VarRecMain }

The commands to compile and
execute

VarRec.c

and

VarRecMain.p

hostname% cc -c VarRec.c

hostname% pc -calign VarRec.o VarRecMain.p

hostname% a.out

Z

Advertising