diff --git a/doc/pcref.doc b/doc/pcref.doc index 93261979..b2cd3c33 100644 --- a/doc/pcref.doc +++ b/doc/pcref.doc @@ -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.