iOS inline内联函数
2018-02-26 本文已影响17人
爱吃麦子的鱼
在看YYKit源码时,看到static inline组合
1、static 表示只在本文件中应用,比如在A文件中有static A,在B文件中同样存在static A,不会包重复命名错误
2、inline表示内联函数,解决函数的调用效率问题
inline.jpg
inline说明
1、内联函数只是我们发给编译器的一个请求,不一定会被采用
2、内联函数内部不能写大量代码,编译器会自动放弃内联函数
3、内联函数内部不允许开关语句和循环语句
4、内联函数的定义必须在调用之前
优点
1、inline相对于函数
- 解决函数调用效率问题。在汇编时没有调用call,取消了函数参数压栈,减少了调用开销
2、inline相对于宏
- 不需要预编译
- 在编译时对参数类型进行检查
- 可以使用受保护类型的属性
参考
https://www.jianshu.com/p/d557b0831c6a
https://www.jianshu.com/p/a39e79b1bed8