Skip to content

Writing interfaces to C libraries

Kiwamu Okabe edited this page Aug 16, 2014 · 1 revision

Sample code

main.dats

#include "share/atspre_define.hats"
#include "share/atspre_staload.hats"

extern fun c_func_kick (int): int = "mac#"
extern fun ats_func_plus1: (int) -> int = "ext#"

implement ats_func_plus1 (a) = a + 1

implement main0 () = {
  val () = println! (c_func_kick 9)
}

c_func.c

extern int ats_func_plus1(int);

int c_func_kick(int a) {
    ats_func_plus1(a);
}

Build and run it

$ patscc main.dats c_func.c -o main
$ ./main

More detail

See "Introduction to Programming in ATS: Interaction with C".

Clone this wiki locally