1. 程式人生 > >Swift中不用橋接檔案和.h標頭檔案直接和C程式碼互動的方法

Swift中不用橋接檔案和.h標頭檔案直接和C程式碼互動的方法

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

我們再Project中新增一個.c檔案,不要建立橋接檔案和對應的.h標頭檔案,該.c檔案內容如下:

#include <stdio.h>

int add(int i,int j){
    return i + j;
}

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

開啟需要呼叫c程式碼的swift檔案,輸入如下程式碼:

//在全域性作用域新增如下兩行程式碼
@_silgen_name
("add") func c_add(i:Int32,j:Int32)->Int32 @_silgen_name("mul") func c_mul(i:Int32,times:Int32)->Int32 //以下是呼叫程式碼 let x = c_add(i: 100, j: 100) let y = c_mul(i: 100, times: 100) print("\(x) , \(y)")

需要注意的是在Swift 2.2之前,我們需要將@_silgen_name替換為@asmname偽指令.