def test_take_and_return_partial_structs():
ffi = FFI()
ffi.cdef("""
typedef struct { int x; ...; } foo_t;
foo_t foo(foo_t, foo_t);
""")
lib = ffi.verify("""
typedef struct { int y, x; } foo_t;
foo_t foo(foo_t a, foo_t b) {
foo_t r = { 100, a.x * 5 + b.x * 7 };
return r;
}
""")
args = ffi.new("foo_t[3]")
args[0].x = 1000
args[2].x = -498
h = lib.foo(args[0], args[2])
assert ffi.sizeof(h) == 2 * ffi.sizeof("int")
assert h.x == 1000 * 5 - 498 * 7
评论列表
文章目录