HP SunSoft Pascal 4.0 User Manual
Page 143
Advertising

The C–Pascal Interface
119
6
The C function,
StrVar.c
#include <string.h>
struct TVarLenStr {
int nbytes;
char a[26];
};
void StrVar(char *s10, char *s80, struct TVarLenStr *vls)
{
static char ax[11] = "abcdefghij";
static char sx[81] = "abcdefghijklmnopqrstuvwxyz";
static char vx[6] = "varstr";
strncpy(s10, ax, 11);
strncpy(s80, sx, 80);
strncpy(vls->a, vx, 6);
vls->nbytes = 6;
}
The Pascal main program,
StrVarMain.p
program StrVarMain(output);
type
TVarStr = varying[26] of char;
var
a: alfa;
s: string;
v: TVarstr;
procedure StrVar(var a: alfa; var s: string; var v: TVarStr);
external c;
begin
StrVar(a, s, v);
writeln(a);
writeln(s);
writeln(v);
writeln(' length(v) = ', length(v) :2);
end. { StrVarMain }
Advertising