Skip to main content
Struct 定義 C 結構體的內存佈局,支持序列化/反序列化,可與 ffi.ptr 配合傳遞給 C 函數。

示例

Struct()

StructSchema

size

結構體總大小(字節),包含對齊填充。

create()

將對象序列化爲 ArrayBuffer。嵌套結構體字段傳入其 create() 返回的 ArrayBuffer

fromPtr()

從原始指針讀取結構體數據。基本類型字段返回數值,嵌套結構體字段返回指針(該子結構體在內存中的起始地址),需通過子結構體的 fromPtr 進一步讀取。

get() / set()

僅支持基本類型字段,嵌套結構體字段返回 0 / 不操作。

嵌套結構體

字段值可以是另一個 StructSchema,遞歸計算佈局。

dlopen 配合(HFA 結構體傳參)

對於在寄存器中傳遞的小型 HFA 結構體,可直接將 StructSchema 用作 dlopenargs / returns
結構體作爲參數時自動展開爲字段值傳入寄存器;作爲返回值時自動分配 buffer,返回 buffer 的指針。通過 fromPtr 同步讀取。

ARM64 對齊規則

嵌套結構體的對齊取其所有子字段對齊的最大值。

與 C 函數配合