Swift3.0 呼叫C函式-_silen_name

weixin_34391854發表於2018-12-29

一般情況下Swit要想呼叫obj-c,c或c++程式碼必須通過obj-c以及橋接檔案才可以辦到,但是使用@_silgen_name,可以對於某些簡單的程式碼,直接跳過橋接檔案和.h標頭檔案與C程式碼互動。

建立.c檔案

#include <stdio.h>
int add(int i, int j){
    return i + j;
}

int mul(int i, int times){
    return i * times;
}

建立.swift檔案,引用.c檔案函式

// 在全域性作用域下進行宣告
// swift 2.2使用關鍵字@asmname
import Foundation
@_silen_name("add") func c_add(_ num1: Int, _ num2: Int) -> Int
@_silgen_name("mul") func c_mul(_ num: Int, _ times: Int) -> Int

// 呼叫函式
print(c_add(90, 23))
print(c_mul(3, 20))

// 結果
113
60


作者:HCong
連結:https://www.jianshu.com/p/233afa939614
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。

相關文章