美文网首页
iOS typedef #define的区别和使用

iOS typedef #define的区别和使用

作者: 夜之海澜 | 来源:发表于2021-11-10 09:12 被阅读0次

    一、typedef

    给对应类型改个名字

    //给double取别名为doubleA
    typedef double doubleA;  
    
     //给man结构体取别名为Oldman。[使用: Oldman m = {"hah"};]
    typedef struct Man
    {
        NSString *name 
    }Oldman; 
    
    //给block取别名HBlock
    typedef void(^HBlock) (int a,int b);  
    

    二、#define

    主要是文本替换

    //MyString替换后面的文本
    #define MyString @"Hello World !"  
    //MyString2替换MyString
    #define MyString2 MyString  
    

    三、typedef和#define使用注意点

    1. define是文本替换,属于预编译指令,本身不参与编译,除非希望替换的文本中有;,否则不用加。typedef是类型替换,语句的一种,结尾必须有;

    2. define写在方法/函数中则作用域从写的地方开始有效,直至使用#undef(不写此指令后面一直有效)。typedef写在方法/函数中,则作用域只在此方法/函数中有效。

    3. 若使用typedef char * MyString;则MyString s1,s2 等价于 char *s1;char * s2
      若使用#define MyString char * 则MyString s1,s2 等价于char *s1,s2; 即char *s1; char s2;

    相关文章

      网友评论

          本文标题:iOS typedef #define的区别和使用

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