美文网首页
内联函数(inline)

内联函数(inline)

作者: sun5kong | 来源:发表于2019-08-06 15:08 被阅读0次
static inline NSString * imageURLKeyForState(UIControlState state) {
    return [NSString stringWithFormat:@"image_%lu", (unsigned long)state];
}

什么是内联函数

内联函数是inline修饰的函数, 函数不是在调用时发生控制转移, 而是在编译时将函数体嵌入每一处调用.

内联函数用法

inline 关键字用来定义一个类的内联函数,引入他的主要目的是用它来替代C中表达式形式的宏定义(其实它的用法跟宏一样,只不过比宏的安全性,效率更好).

内联函数与宏比较

  1. 宏在使用时,仅仅只做预处理器符号表中的简单替换,因此它不能进行参数有效性的检测,也不能享受C编译器严格类型检查的好处
  2. 宏返回值不能返回不能被强制转换成想要的类型
  3. 内联函数也是函数, 不需要预编译, 宏需要预编译

内联函数和函数的比较

  1. 集成了宏的优点,使用时直接用代码替换;
  2. inline函数避免了普通函数的在汇编时必须调用call的缺点,取消了函数的参数压栈,减少了调用的开销,提高效率,所以执行速度比一般函数的执行速度快.

总结

  1. 可以使用inline函数完全替代宏;
  2. 内联函数适用于简单的函数, 因为会在调用它的地方进行展开, 函数复杂会使代码膨胀;
  3. 在内联函数内不允许使用循环语句和开关语句.如果内联函数有这些语句,则编译将该函数视同普通的函数那样产生函数调用代码,递归函数是不能用来做内联函数的;
  4. 内联函数需定义在调用之前

相关文章

  • Kotlin内联函数使用

    inline 本质 Kotlin中的内联函数使用inline关键字修饰,形如: 编译时,inline会将内联函数中...

  • C++ 从入门到放弃 (Day-02)

    内联函数(inline function) ◼ 使用inline修饰函数的声明或者实现,可以使其变成内联函数 建...

  • 内联函数

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

  • 04-内联函数(inline function)

    内联函数(inline function) 使用inline修饰函数的声明或者实现,可以使其变成内联函数。一般建议...

  • 内联函数、引用、const

    内联函数 inline function 使用inline修饰函数的声明或者实现,可以使其变成内联函数。 一般建议...

  • iOS-inline内联函数

    iOS-inline内联函数

  • Kotlin - Inline Functions 1

    Inline Basics Inline or Inlining,我们更经常听到的词是方法内联或者内联函数。在大多...

  • Kotlin之lambda、inline、扩展函数与匿名函数

    > inline 内联函数及其场景 inline只能提高带有lambda参数的函数的性能 ==好处==: 节约函数...

  • 3.构造函数

    inline(内联)函数 inline函数是直接替换函数名为函数内容.声明inline的两种方式: 函数定义时在函...

  • Kotlin内联函数

    Kotlin里使用关键 inline 来表示内联函数,那么到底什么是内联函数呢,内联函数有什么好处呢? 1. 什么...

网友评论

      本文标题:内联函数(inline)

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