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
Summary of Contents for SunSoft Pascal 4.0
Page 14: ...xiv Pascal 4 0 User s Guide ...
Page 16: ...xvi Pascal 4 0 User s Guide ...
Page 30: ...6 Pascal 4 0 User s Guide 1 ...
Page 160: ...136 Pascal 4 0 User s Guide 6 ...
Page 268: ...244 Pascal 4 0 User s Guide 11 ...
Page 320: ...296 Pascal 4 0 User s Guide B ...
Page 331: ...Index 307 ...
Page 333: ......