Variant records – HP SunSoft Pascal 4.0 User Manual
Page 149

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