• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import cffi
2
3ffi = cffi.FFI()
4
5ffi.cdef("""int my_algo(int); extern "Python" int f(int);""")
6
7ffi.set_source("_extern_python_cffi", """
8    static int f(int);
9    static int my_algo(int n) {
10        int i, sum = 0;
11        for (i = 0; i < n; i++)
12            sum += f(i);
13        return sum;
14    }
15""")
16
17ffi.compile()
18
19
20from _extern_python_cffi import ffi, lib
21
22@ffi.def_extern()
23def f(n):
24    return n * n
25
26assert lib.my_algo(10) == 0+1+4+9+16+25+36+49+64+81
27