iOS开发内联函数的使用--NS_INLINE

用法同定义C函数,需要先定义,后调用。例如:


NS_INLINE void printInt(int value) {
    NSLog(@"%d", value);
}

在后在需要使用的地方直接调用即可:

printInt(2);

百度百科:

内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。

内联是以代码膨胀(复制)为代价,仅仅省去了函数调用的开销,从而提高函数的执行效率。如果执行函数体内代码的时间,相比于函数调用的开销较大,那么效率的收获会很少。另一方面,每一处内联函数的调用都要复制代码,将使程序的总代码量增大,消耗更多的内存空间。以下情况不宜使用内联:

(1)如果函数体内的代码比较长,使用内联将导致内存消耗代价较高。

(2)如果函数体内出现循环,那么执行函数体内代码的时间要比函数调用的开销大。

参考一

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 引入内联函数的目的是为了解决程序中函数调用的效率问题。 函数是一种更高级的抽象。它的引入使得编程者只关心函数的功能...
    平谦阅读 6,696评论 0 1
  • 代码(OC): -(NSUInteger)retainCount{ returnNSExtraRefCount(s...
    nalis风阅读 5,020评论 0 1
  • 内联函数与宏定义 在C中,常用预处理语句#define来代替一个函数定义。例如:#define MAX(a,b) ...
    HQFlying阅读 5,591评论 0 0
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,522评论 9 118
  • 如果我问你:“钱算什么?”你可能会自视清高的说:“钱算垃圾!”你也有可能诚实的说:“钱很重要!” 钱,如果是垃圾,...
    注视黑暗的眼睛阅读 3,247评论 0 1

友情链接更多精彩内容