Variant records – HP SunSoft Pascal 4.0 User Manual

Page 149

Advertising
background image

The C–Pascal Interface

125

6

Variant Records

C equivalents of variant records can sometimes be constructed, although there
is some variation with the architecture, and sometimes you have to adjust the
alignment.

The Pascal main program,

StruChrMain.p

program StruChrMain(output);

type

TVarLenStr = record

nbytes: integer;

a: array [0..25] of char

end;

var

vls: TVarLenStr;

i: integer;

procedure StruChr(var vls: TVarLenStr); external c;

begin

StruChr(vls);

write(' string=''');

for i := 0 to vls.nbytes - 1 do

write(vls.a[i]);

writeln('''');

writeln(' length = ', vls.nbytes)

end. { StruChrMain }

The commands to compile and
execute

StruChr.c

and

StruChrMain.p

hostname% cc -c StruChr.c

hostname% pc -calign StruChr.o StruChrMain.p

hostname% a.out

string=' strvar'

length= 6

Advertising