我知道可以@_silgen_name
在swift模块中的函数上使用attr与c互操作。有没有办法用程序集文件中定义的符号来执行此操作?我想使用Swift进行系统调用。这就是为什么我问。
创建网桥header.h文件,然后将该函数的原型放入该文件中。
例如,您的汇编代码:
.globl _add // make it global so that others can find this symbol
....
_add: // int add(int a, int b)
movl %esi, %eax
addl %edi, %eax
ret
然后在桥接header.h文件中
int add(int a, int b);
或者
在swift模块的顶部定义它
@_silgen_name("add") func add(a: Int32, b: Int32) -> Int32
然后,您可以快速使用它:
let a = add(1, 2);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句