OK, here is an example. logic.c: typedef int (adder)(int, int);

int run(adder fn, int a, int b) {
    return fn(a, b);

}

logic.nim: {. compile: "logic.c" .} type adder {. importc .} = proc(a, b: 
cint): cint proc run(fn: adder, a, b: cint): cint {. importc, cdecl, nodecl .} 
proc add(a, b: cint): cint {. cdecl .} = a+b

var res=int(run(add, cint(100), cint(5125))) echo $res 

Reply via email to