Python の CFFI で C 関数にポインタを渡すにはどうすればよいですか?
たとえば、ラッピングしているライブラリに 2 つの関数があるとします。
void some_function(void (*callback)()) {
callback();
}
void some_callback() {
printf("callback!\n");
}
some_function
を渡すにはどうすればよいsome_callback
ですか? たとえば、次のようなものです。
from mylib._ffi import lib
lib.some_function(lib.some_callback)
Python 関数をコールバックでラップするために使用できることはわかっていffi.callback(…)
ますが、C 関数の型シグネチャなどの重複を避けることができるかどうか疑問に思っています。