swift call c
2017-02-20
Kommentare
這篇提到如何使用 swift
call c
language
因為 swift 在建立 symbol 時,會用到 name mangling
我們可以 @_silgen_name
去指定 symbol 名稱
1 | // symbol: swift_add |
或者將特定的 symbol 轉成我們要的 swift interface
1 | @_silgen_name("add") |
SwiftSocket 使用案例
1 | @_silgen_name("ytcpsocket_connect") |
1 | int ytcpsocket_connect(const char *host, int port, int timeout) { |
siwft @_silgen_name
實作 What is ‘@_silgen_name’ in Swift language?
這篇提到 Attr.cpp 如何定義屬性
以及 Attr.def 以定義的屬性
其他參考
個人實作
1 | int yume_add(int a,int b) { |
1 | import Foundation |
1 | llvm-gcc -c add.c |