跳转到主要内容
FFIType 提供函数定义中使用的类型常量。

常量表

常量编码ArkTS 类型C 类型
FFIType.char / int8_t / i8cnumberchar / int8_t
FFIType.uint8_t / u8inumberuint8_t
FFIType.int16_t / i16inumberint16_t
FFIType.uint16_t / u16inumberuint16_t
FFIType.int32 / i32 / int / uint32_t / u32inumberint32_t
FFIType.int64 / i64 / int64_t / uint64_t / u64lnumberint64_t / uint64_t
FFIType.double / f64dnumberdouble
FFIType.float / f32fnumberfloat
FFIType.boolbnumberbool
FFIType.CStringsstringconst char*
FFIType.ptr / pointer / function / bufferpnumbervoid*
FFIType.callbackkJSCallbackint32_t (*)(int32_t)(函数指针)
FFIType.usizelnumbersize_t / uintptr_t

用法

import { FFIType } from 'arkffi';

const def = {
  args: [FFIType.int32, FFIType.double, FFIType.CString],
  returns: FFIType.double,
};

// 也可使用字符串字面量(等价的简写形式)
// args: ['i', 'd', 's']
// returns: 'd'

ARM64 寄存器映射

C 类型ArkTS 类型寄存器
int32_t, bool, charnumberx0-x7
int64_t, uint64_t, void*numberx0-x7
float, doublenumberv0-v7
const char*stringx0-x7(指针)