美文网首页
iOS ##运算符

iOS ##运算符

作者: 可bing | 来源:发表于2018-12-21 16:14 被阅读0次

    运算符可以用于宏函数的替换部分。这个运算符把两个语言符号组合成单个语言符号,为宏扩展提供了一种连接实际变元的手段

    例子一:

    #import "ViewController.h"
    
    #define LB_Create(magic)  \
    - (NSString *)magic {\
    return [self lb_##magic];\
    }\
    
    @interface ViewController ()
    @property (nonatomic, copy, readonly) NSString *testStr;
    @property (nonatomic, copy, readonly) NSString *lb_testStr;
    @end
    
    @implementation ViewController
    
    LB_Create(testStr)
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        NSLog(@"%@",self.testStr);
    }
    
    - (NSString *)lb_testStr {
        return @"you are so cool !";
    }
    
    @end
    

    编译运行输出:

    you are so cool !
    

    就是个粘合剂,将前后两部分粘合起来,也就是有“字符化”的意思。但是“##”不能随意粘合任意字符,必须是合法的C语言标示符。在单一的宏定义中,最多可以出现一次“#”或“##”预处理操作符。如果没有指定与“#”或“##”预处理操作符相关的计算次序,则会产生问题。为避免该问题,在单一的宏定义中只能使用其中一种操作符(即,一份“#”或一个“##”,或都不用)。除非非常有必要,否则尽量不要使用“#”和“##”。

    相关文章

      网友评论

          本文标题:iOS ##运算符

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