6

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

 

 

 

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 C–Pascal Interface

125

Page 149
Image 149
HP SunSoft Pascal 4.0 Commands to compile and execute StruChr.c and StruChrMain.p, Calign StruChr.o StruChrMain.p, Out