3 (* Declare ffi to be implemented by calling the C function ffi
. *)
4 val ffi
= _import
"ffi" public
: real array
* int * int ref
* char ref
* int -> char
;
8 val a
= tabulate (size
, fn i
=> real i
)
13 (* Call the C function
*)
14 val c
= ffi (a
, Array
.length a
, ri
, rc
, n
)
16 (* FFI_INT is declared
as public
in ffi
-import
.c
*)
17 val (nGet
, nSet
) = _symbol
"FFI_INT" public
: (unit
-> int) * (int -> unit
);
19 val _
= print (concat
[Int.toString (nGet ()), "\n"])
22 print (if c
= #
"c" andalso !ri
= 45 andalso !rc
= c