美文网首页
static ,const, extern 小总结

static ,const, extern 小总结

作者: Harry_Coding | 来源:发表于2017-07-25 11:10 被阅读9次

    Static

    1.what?
    static 静态的意思,用于修饰一个变量,作为私有的全局变量, 仅仅用static 修饰的变量是一个静态变量
    2.why?
    我们想把一个变量的作用域扩展到整个类的时候,如果仅仅是这样的话,其实我们的OC里的属性完全可以替代。那么我们为什么还会用到它呢?其实被static 修饰的变量或者是常量都有一个比较重要的特性,它会存在静态区,只初始化一次。这是我们可能想用到它,最大一个特点吧
    3.how?
    static int a = 0; 可以初始化,也可以不初始化,不初始化默认的就是0

    Const

    1.what?
    被用来修饰常量的,表示是一个常量,修饰的变量是不可变的
    2.why?
    正如上边说的,就是因为他修饰的变量是一个不可改变的,所以我们才会用到他
    3.how?
    可以加上static 修饰变量 static NSString * const name = @“Perfect”, 表示这个是一个静态的常量,那么就是说他会在开机的时候初始化一次,而且是不可以改变的。注意:const 放在变量的前边是修饰变量的,表示这个变量不可变,但是如果放在*前面或者static 后面,都表示修饰的是一个指针,那么表示这个指针地址不变,但是指针的内容可以改变

    Extern

    1.what?
    刚才讲到的都是一些局部变量,也就是只能在这个类里边使用,其他的类没有办法直接访问这些变量的,extern 修饰的变量正是解决了这一个问题,他所修饰的变量可以全局访问
    2.why?
    上边的what里边其实已经解释了,就是因为我们想在这个类之外,直接访问这个变量
    3.how?
    可以直接使用 extern NSString *name = @“perfect” 表示一个全局变量
    也可以配合const 使用 extern NSString * const name = @“perfect” 此时这个常量只被初始化一次,并且是全局变量

    相关文章

      网友评论

          本文标题:static ,const, extern 小总结

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