Added some documentation for the interface between C and Pascal.
This was necessary because the format of Pascal and C procedure pointers differ from now on.
This commit is contained in:
parent
d19105ef78
commit
e75b8772ca
1 changed files with 30 additions and 0 deletions
|
@ -413,6 +413,36 @@ for parameters. Some EM implementations check this:
|
|||
\*(ONnot checked.
|
||||
.I2
|
||||
not checked.
|
||||
.IE
|
||||
.PP
|
||||
For those who wish the use the interface between C and Pascal we
|
||||
give an incomplete list of corresponding formal parameters in C and Pascal.
|
||||
.sp 1
|
||||
.ta 8 37
|
||||
.nf
|
||||
Pascal C
|
||||
a:integer int a
|
||||
a:char int a
|
||||
a:boolean int a
|
||||
a:real double a
|
||||
a:^type type *a
|
||||
var a:type type *a
|
||||
procedure a(pars) struct {
|
||||
void (*a)() ;
|
||||
char *static_link ;
|
||||
}
|
||||
function a(pars):type struct {
|
||||
type (*a)() ;
|
||||
char *static_link ;
|
||||
}
|
||||
.fi
|
||||
The Pascal runtime system uses the following algorithm when calling
|
||||
function/procedures passed as parameters.
|
||||
.nf
|
||||
.ta 8 16
|
||||
if ( static_link ) (*a)(static_link,pars) ;
|
||||
else (*a)(pars) ;
|
||||
.fi
|
||||
.IT 6.7.2.1
|
||||
The order of evaluation of the operands of a dyadic operator
|
||||
shall be implementation-dependent.
|
||||
|
|
Loading…
Reference in a new issue