HP SunSoft Pascal 4.0 User Manual
Page 152

128
Pascal 4.0 User’s Guide
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
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
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 }
The commands to compile and
execute
NonPas.c
and
NonPasMain.p
hostname% cc -c NonPas.c
hostname% pc NonPas.o NonPasMain.p
hostname% a.out
Hello from Pascal
Hello from Pascal
- Laserjet p1606dn (152 pages)
- LaserJet 1320 (184 pages)
- LaserJet 1320 (4 pages)
- LaserJet 1320 (2 pages)
- LaserJet 1320 (9 pages)
- Deskjet 6940 (150 pages)
- LaserJet P2035n (148 pages)
- LaserJet 4250 (304 pages)
- LaserJet P2055dn (176 pages)
- Deskjet 5650 (165 pages)
- LASERJET PRO P1102w (158 pages)
- LaserJet P2015 (158 pages)
- DesignJet 500 (16 pages)
- DesignJet 500 (268 pages)
- Officejet Pro 8000 - A809 (140 pages)
- Officejet 6100 (138 pages)
- Officejet 6000 (168 pages)
- LASERJET PRO P1102w (2 pages)
- 2500c Pro Printer series (66 pages)
- 4100 mfp (164 pages)
- 3600 Series (6 pages)
- 3392 (10 pages)
- LASERJET 3800 (18 pages)
- 3500 Series (4 pages)
- Photosmart 7515 e-All-in-One Printer - C311a (62 pages)
- PSC-500 (40 pages)
- 2500C/CM (65 pages)
- QMS 4060 (232 pages)
- 2280 (2 pages)
- 2430dtn (4 pages)
- 1500 (13 pages)
- 1000 Series (1 page)
- TOWERFEED 8000 (36 pages)
- Deskjet 3848 Color Inkjet Printer (95 pages)
- 2100 TN (184 pages)
- B209 (24 pages)
- Designjet 100 Printer series (1 page)
- QM2-111 (35 pages)
- 2100 (5 pages)
- 2000CP series (2 pages)
- 2300L (4 pages)
- 35000 (2 pages)
- 3015 (2 pages)
- Color LaserJet CM3530 Multifunction Printer series (302 pages)
- StudioJet (71 pages)