
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
Komentarze do niniejszej Instrukcji