![](/images/backgrounds/286549/hp-sunsoft-pascal-4-0-users-manual-549395152x1.png)
6
See this example:
The C function, NonPas.c. In the function for_C, s is a pointer (declared var in the procedure declaration), and len is not a pointer (not declared var in the procedure declaration). In the function for_nonpascal, s is still a pointer (though not declared var in the procedure declaration), and len is now a pointer (though not declared var).
#include <stdio.h>
void for_C(char *s, int len)
{
int i;
for (i = 0; i < len; i++) putchar(s[i]);
putchar('\n');
}
void for_NonPascal(char *s, int *len)
{
int i;
for (i = 0; i < *len; i++) putchar(s[i]);
putchar('\n');
}
The Pascal main program, NonPasMain.p
The commands to compile and execute NonPas.c and
NonPasMain.p
program NonPasMain; var
s: string;
procedure for_C(var s: string; len: integer); external c;
procedure for_NonPascal(var s: string; len: integer); nonpascal;
begin
s :='Hello from Pascal'; for_C(s, 18); for_NonPascal(s, 18);
end. { NonPasMain }
hostname% cc
Hello from Pascal
Hello from Pascal
128 | Pascal 4.0 User’s Guide |