美文网首页
iOS开发中的内联函数

iOS开发中的内联函数

作者: 天蚕 | 来源:发表于2019-03-07 16:39 被阅读5次

1、内联函数

内联函数(又被称为在线函数或编译时期展开函数)是指在用inline修饰的函数(这里指的是C++或者C语言的函数)。

2、与普通函数的区别

我们都知道函数不管是OC还是C/C++最终都需要编译成汇编指令,才能真正执行。普通函数在被调用的时候需要CPU执行CALL指令不同(需要完成程序计数器压栈->执行要执行的函数语句->出栈程序计数器),内联函数不需要这个调用过程,内联函数在编译的时候,会直接在需要执行内联函数的地方(普通函数执行CALL的汇编语句处)将内联函数的汇编片段copy一份并插入到此处,代替CALL指令(类似于宏定义),而不需要普通函数的CALL指令调用过程。因此内联函数的执行效率是比较高的,但是由于copy代码片段,需要内存消耗,所以内联函数是一种以空间换时间的方法。

3、与宏定义的区别

宏定义只是简单的字符串替换,是不能做类型检查,内联函数相比而言就会更加安全

4、内联函数使用的注意项

内联函数通常都是比较简单的代码片段,不能包含循环,递归(递归函数的内联扩展可能引起部分编译器的无穷编译)等的复杂流程,代码最好不要超过5行

5、推荐使用内联函数代替宏定义

YYKitAFNetworking等一些优秀的三方框架中就有大量的静态(文件内使用)内联函数使用static inline

相关文章

  • iOS开发中的内联函数

    1、内联函数 内联函数(又被称为在线函数或编译时期展开函数)是指在用inline修饰的函数(这里指的是C++或者C...

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

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

  • iOS-inline内联函数

    iOS-inline内联函数

  • iOS开发之内联函数

    iOS 开发内联函数 在.pch进行声明(有参数无返回值)1 调用在你需要的地方进行调用,和宏定义调用一致 例如 ...

  • 内联函数(inline修饰的函数)

    内联函数 iOS开发同学经常会在有些代码中看到inline关键词修饰的函数,这里就和大家说下这个关键词。 ...

  • 内联函数

    内联函数 在类中定义的函数,但是实现却在类外面。并且在函数前加了 inline 就是内联函数,内联函数效率一般比较...

  • iOS开发中内联函数(UIKIT_STATIC_INLINE)的

    内联函数是一种小型函数,是以空间换效率的函数,功能较简单,即函数内部没有循环、开关语句等,内联函数的主要作用是在使...

  • iOS之UIView

    初识iOS APP开发#### 在iOS APP开发中, main函数仍是程序的入口和出口, 但main函数不需要...

  • iOS OC中内联函数inline

    inline 在iOS中的一些框架中,static inline是经常出现的关键字组合。 static自不用多说,...

  • Java 方法内联

    什么是Java 方法内联? 我们先来看看普遍的内联函数含义。在维基百科中解释为: 内联函数:在计算机科学中,内联函...

网友评论

      本文标题:iOS开发中的内联函数

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