Swift与C语言交叉编译方法二

Home / iOS MrLee 2016-3-11 3666

在本博客有一篇关于socket封装的文章,里面讲的是用C实现的socket,然后在Swift文件中用@asmname关键字来绑定C和Swift语言交互。这种方法我个人看来,比较麻烦。首先不说参数,什么const char*这种类型对吧,要是C实现的函数非常之多,我们一个一个封装多累呀。今天在这里讲下,如何在Swift语言中直接调用C语言中的函数。此处补充点题外话,Swift中调用C语言是非常方便的,但是调用C++的就不行。C++就显的更麻烦一点。如果你用C++写了,你必须用oc或者c再来中转一下,这不是显得蛋疼么!
下面我们在swift工程中创建1个c语言的文件,勾选头文件,然后会自动产生2个文件。如我们例子来说:

E48CAFDD-025F-461B-8F9F-BF840B6B3E28


然后看下源码,C语言还是看起来很舒服的。先头文件
.h文件
#ifndef CMath_h
#define CMath_h
int CC_Max(int a,int b);
#endif /* CMath_h */

.c文件
#include 
int CC_Max(int a,int b){
    return a > b ? a : b;
}

然后我们在工程的桥接文件(我这个是自己手动创建的头文件,然后在工程配置的)添加这个CMath.h文件就行了,最后就是在Swift中调用
let m = CC_Max(20, 30)
print(m)

怎么样?是不是比原先那个例子要来的更直接,更快呢?

本文链接:https://www.it72.com/7954.htm

推荐阅读
最新回复 (0)
返回