美文网首页
内联函数的使用

内联函数的使用

作者: 谁在弹奏一曲东风破 | 来源:发表于2016-06-18 11:34 被阅读157次

    内联函数是一种小型函数,是以空间换效率的函数,功能较简单,即函数内部没有循环、开关语句等,内联函数的主要作用是在使用中取代宏定义的存在,它与宏定义的主要区别是它会进行类型检查.

    简单源码

    inline int foo(int a, int b){
        return a + b;
    }
    

    inline是内联函数的关键字,表明后面的函数是一个内联函数,内联函数是c++的语法,所以函数按照c++函数的形式;

    在iOS中可以这样使用

    UIKIT_STATIC_INLINE CGRect CGFitRectMake(CGFloat x, CGFloat y , CGFloat width , CGFloat height){
        CGFloat scale = [UIScreen mainScreen].bounds.size.width/375;
        CGRect frame;
        frame.origin.x = x * scale;
        frame.origin.y = y * scale;
        frame.size.width = width * scale;
        frame.size.height = height * scale;
        return frame;
    }
    

    其中

     #define UIKIT_STATIC_INLINE static inline
    

    使用

    常见使用定义以及使用方法,因为内联函数可以看成另一种形式的宏定义文件

    • 定义一个.h文件
    • 引入uikit头文件 #import<UIKit/UIKit.h>
    • 定义函数

    例子
    McGeometric.h

    #import <UIKit/UIKit.h>
    
    UIKIT_STATIC_INLINE CGRect CGFitRectMake(CGFloat x, CGFloat y , CGFloat width , CGFloat height){
        CGFloat scale = [UIScreen mainScreen].bounds.size.width/375;
        CGRect frame;
        frame.origin.x = x * scale;
        frame.origin.y = y * scale;
        frame.size.width = width * scale;
        frame.size.height = height * scale;
        return frame;
    }
    
    UIKIT_STATIC_INLINE NSString* JoinMuiltString(NSString * a,...){
    NSMutableString *temString = [[NSMutableString alloc] initWithString:a];
        va_list ap;
        va_start(ap, a);
        while (1) {
           NSString * b = va_arg(ap, NSString*);
           if (b == nil) {
              break;
            }
           NSLog(@"==%@",b);
           [temString appendString:b];
        }
        va_end(ap);
        return temString;
    }
    
    .......
    

    相关文章

      网友评论

          本文标题:内联函数的使用

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