The C–Pascal Interface
131
6
Parameters That Are Pointers to Procedures
Pascal has a special type that is a pointer to a procedure. A variable of this
type can be used as a parameter, as follows:
The C function,
RetReal.c
double RetReal(double *x)
{
return(*x + 1.0);
}
The Pascal main program,
RetRealMain.p
program RetRealMain;
var
r, s: real;
function RetReal(var x: real): real; external c;
begin
r := 2.0;
s := RetReal(r);
writeln(r: 4: 1, s: 4: 1)
end. { RetRealMain }
The commands to compile and
execute
RetReal.c
and
RetRealMain.p
hostname% cc -c RetReal.c
hostname% pc RetReal.o RetRealMain.p
hostname% a.out
2.0 3.0
The C function,
ProcPar.c
#include <string.h>
void proc_c (void (*p)()) /* a pointer to procedure argument */
{
char *s ;
s = "Called from C";
(*p)( s, strlen(s)); /* Call the Pascal routine */
}
Содержание SunSoft Pascal 4.0
Страница 14: ...xiv Pascal 4 0 User s Guide ...
Страница 16: ...xvi Pascal 4 0 User s Guide ...
Страница 30: ...6 Pascal 4 0 User s Guide 1 ...
Страница 160: ...136 Pascal 4 0 User s Guide 6 ...
Страница 268: ...244 Pascal 4 0 User s Guide 11 ...
Страница 320: ...296 Pascal 4 0 User s Guide B ...
Страница 331: ...Index 307 ...
Страница 333: ......