10static void cls_ret_double_fn(ffi_cif* cif
__UNUSED__,
void* resp,
void** args,
13 *(
double *)resp = *(
double *)args[0];
15 printf(
"%f: %f\n",*(
double *)args[0],
24 ffi_closure *pcl = ffi_closure_alloc(
sizeof(ffi_closure), &code);
25 ffi_type * cl_arg_types[2];
28 cl_arg_types[0] = &ffi_type_double;
29 cl_arg_types[1] =
NULL;
33 &ffi_type_double, cl_arg_types) == FFI_OK);
39 printf(
"res: %.6f\n", res);
ffi_status ffi_prep_closure_loc(ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc)
double(* cls_ret_double)(double)
ffi_status ffi_prep_cif(ffi_cif *cif, ffi_abi abi, unsigned int nargs, ffi_type *rtype, ffi_type **atypes)