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.
|
\*(ONnot checked.
|
||||||
.I2
|
.I2
|
||||||
not checked.
|
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
|
.IT 6.7.2.1
|
||||||
The order of evaluation of the operands of a dyadic operator
|
The order of evaluation of the operands of a dyadic operator
|
||||||
shall be implementation-dependent.
|
shall be implementation-dependent.
|
||||||
|
|
Loading…
Add table
Reference in a new issue