Я пишу оболочку Python для сгенерированного кода C, который содержит функции, которые используют аргументы указателя в качестве выходных данных. Я хочу проанализировать эти функции, сгенерированные с использованием CFFI, чтобы определить, вводят ли они наши выходные аргументы. Входные аргументы помечены const
, но, похоже, CFFI отбрасывает эту информацию.
Рассмотрим следующий пример
from cffi import FFI
ffibuilder = FFI()
ffibuilder.set_source("_example",
r"""
int add(const int a, const int b) {
return a+b;
}
""")
ffibuilder.cdef("""
int add(const int a, const int b);
""")
if __name__ == "__main__":
ffibuilder.compile(verbose=True)
import _example
ff = _example.lib.add
ff_t = _example.ffi.typeof(ff)
print(ff_t)
Который печатает <ctype 'int(*)(int, int)'>
, в то время как вводы определены в коде const
.