美文网首页
const、static、extern、宏

const、static、extern、宏

作者: Yancy_90 | 来源:发表于2016-11-08 10:49 被阅读17次

    const

    含义:类型修饰符,用于一般修饰基本变量和指针变量。
    作用:
    1.修饰基本变量 
      被const修饰的基本变量后,其值不可变,相当于常量 。
    2.修饰指针变量 
      2.1 在*的左边  值不可变,指针方向可变。
       2.2 在*的右边  值可变,指针方向不可变
    3.使用场景 
      3.1 代替宏,定义为只读常量 
      3.2 在方法参数里,定义为只读,不可修改
    

    static

    含义:关键词,一般用于修饰变量
    作用:
    1.修饰局部变量 
      1.1延长生命周期,当程序启动时创建,当程序退出时销毁。
      1.2 在整个程序中,只分配一次内存。(存放在静态区中) 
      1.3 对局部变量的作用域不影响。
    2.修饰全局变量  被static修饰的全局变量,只能在本文件中能访问。
    

    extern

    作用:
    仅仅声明一个全局作用,用于其他文件访问
    (如果在一个类中定义了一个全局变量,想要在其他类中也访问,那么需要用extern声明在能用)
    

    预处理指令,(#开头的都是预处理指令) ,相当与拷贝。
    一般用于定义一些经常需要用的方法或函数,以及参数。
    

    const的区别

    1.编译时刻不同。宏是预编译,const是编译时刻。
    2.编译检查。宏不会参与编译检查,const会参数编译检查。
    3.宏的好处:可以定义一些经常需要用的方法或函数
    4.宏的坏处: 加长程序启动的编译时间,不利用调试bug
    

    staticconst的联合使用

    (推荐使用与修饰变量,用于替代宏)作用:只分配一次内存,不能被修改,且只能在本类中能访问。
    

    externconst的联合使用

    1.一般在多人开发中,统一在一个文件中使用,避免冲突。
    2.在.m 文件中利用const定义全局变量,在.h文件中利用extern声明(注意:一般使用UIKIT_EXTERN (这是个宏)代替extern  如:UIKIT_EXTERN NSString *name;)
    

    相关文章

      网友评论

          本文标题:const、static、extern、宏

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