美文网首页
IOS 内联函数Q&A

IOS 内联函数Q&A

作者: 我是繁星 | 来源:发表于2019-04-18 22:20 被阅读0次

Q:YYModel中有一个宏#define force_inline __inline__ __attribute__((always_inline))
并且大量函数都是以内联的形式存在的,那么内联函数有什么用,并且为什么要这样写呢?

A:高级语言都是经过编译器编译成c或汇编语言的,inline __inline__ __attribute__((always_inline))其实是一条编译器指令,编译器会将函数的代码插入到调用该函数的位置,也就是编译的最终代码中这个函数是不存在的,那么既然是强制,就说明编译器有可能拒绝这个请求。


Q:那么这么写有什么好处呢?

A:那么内联函数的好处就是没有普通函数调用的额外开销,OC是一种消息类型的语言调用函数需要很多额外的操作。


Q:那么看起来内联函数跟宏有点像,区别在哪?

A:宏定义是预处理器进行替代的,而内联函数是编译器控制实现的,只有在用到的时候才会展开插入,去掉了函数参数的压栈,减小了开销,我们可以响函数一样调用内联函数,而不用考虑宏一样的问题

相关文章

  • IOS 内联函数Q&A

    Q:YYModel中有一个宏#define force_inline __inline__ __attribute...

  • iOS-inline内联函数

    iOS-inline内联函数

  • ios 内联函数,与宏的区别以及注意事项

    ios 中内联函数例子有: @property(nonatomic)UIEdgeInsetsscrollIndic...

  • iOS inline内联函数

    在看YYKit源码时,看到static inline组合1、static 表示只在本文件中应用,比如在A文件中有s...

  • iOS 内联函数 inline

    OC中使用inline,主要是为了提高函数调用的效率 使用例子: 我们通常会发现,inline 会有 static...

  • C++第二弹---函数

    内联函数 内联函数的定义内联函数也叫内嵌函数,他主要是解决程序运行效率。当内联函数收到编译器的指示时,即可发生内联...

  • 内联函数

    内联函数 整理自内联函数百度百科 内联函数是指用inline修饰的函数(并不是所有用inline修饰的函数都是内联...

  • 《C++ Primer Plus》:函数探幽

    本章内容概览 内联函数 引用变量 按引用传递函数参数 默认参数 函数重载 函数模板 内联函数 内联函数是C++为提...

  • Kotlin系列之let、with、run、apply、also

    目录: 一、回调函数的Kotin的lambda的简化二、内联扩展函数之let三、内联函数之with四、内联扩展函数...

  • C++基础-(函数)

    C++基础 函数 内联函数 内联函数非常短的函数适合于内联函数体会到插入到发生函数调用的地方普通函数调用多次也只有...

网友评论

      本文标题:IOS 内联函数Q&A

      本文链接:https://www.haomeiwen.com/subject/qwvxgqtx.html