美文网首页
extern static const 以及的全局变量

extern static const 以及的全局变量

作者: coder_hong | 来源:发表于2016-07-29 11:43 被阅读13次
  • 在项目中定义一个全局变量,默认是整个项目文件都可使用的,其实默认是extern修饰, 如果想在别的文件使用这个全局变量,就得先引用 就得用extern关键字

    • 例如 在 ViewController文件定义一个全局变量 str
屏幕快照 2016-07-29 上午11.23.06.png
  • 这是后想在HTButton中使用
屏幕快照 2016-07-29 上午11.24.53.png
  • 注意:如果前面定义str的时候前面用static修饰的话 ,那么就会报错 也就是
    • static关键字 代表只可以在本文件中使用

const

  • 其实可以理解苹果是来用它来取代宏的

  • 保证一些变量是不可变的

  • 使用场景

    • 下面两者的区别
NSString  * const abc = @"123";
NSString  const *abc = @"123";
  • 如果想要了解区别, 就得像了解指针的本质

    • abc 代表一个指针变量 保存的是变量的地址值
    • *abc 代表所保存地址值对应的存储空间
  • 那么就可以理解上面两者的区别

NSString  * const abc = @"123";
  • const这里修饰的abc,那么就代表abc指向不可变,也就是其内部保存的地址值不变的,不可以指向别的存储空间
NSString  const *abc = @"123";
  • const修饰的是*abc,也就是说abc所指向的内存空间中的值不可以改变 ,但是abc可以指向可以改变

开发中常用定义全局的变量通常都写在一个.h跟一个.m当中

  • 首先, 我们创建一个继承UIView的类,Global
    • Global.h
#import <UIKit/UIKit.h>
#ifdef __cplusplus
#define UIKIT_EXTERN        extern "C" __attribute__((visibility ("default")))
#else
#define UIKIT_EXTERN            extern __attribute__((visibility ("default")))
#endif

// testGloBalValue全局变量
UIKIT_EXTERN NSString * const testGloBalValue;

  • Global.m
#import "Global.h"

NSString * const testGloBalValue = @"test";


相关文章

网友评论

      本文标题:extern static const 以及的全局变量

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