static和extern的使用

static

static的作用

  • 修饰局部变量:
    1.延长局部变量的生命周期,程序结束才会销毁
    2.局部变量只会生成一份内存,只会初始化一次
    3.改变局部变量的作用域
写法:
//方法内部static修饰的变量不管调用与否,只会调用一次
- (void)staticTest
{
    // static修饰局部变量
    static int age = 0;
    age++;
    NSLog(@"%d",age);
}
//即调用两次该方法
//打印结果
//1
//2
  • 修饰全局变量
    1.只能在本文件中访问,修改全局变量的作用域,生命周期不会改
    2.避免重复定义全局变量
写法:
// 全局变量:只有一份内存,所有文件共享,与extern联合使用。
// 写在方法外部
// static修饰全局变量
static int age = 20;
//调用
extern int age;
NSLog(@"%d",age);
//打印结果
//20

extern

extern作用:

  • 只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量

extern工作原理:

  • 先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. static作用: 用static修饰的变量,程序一运行就会分配一次内存 - 修饰局部变量 * 延长这个局...
    G_M阅读 194评论 0 0
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 1,394评论 0 3
  • 1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch...
    阳光的大男孩儿阅读 5,042评论 0 13
  • static 修饰局部变量 让局部变量只初始化一次 局部变量在程序中只有一份内存 并不会改变局部变量的作用域,仅仅...
    大冲哥阅读 1,394评论 0 1
  • 唯有爱与美食不可辜负 这是沙茶酱的信仰 在每一个寻找自己的路上 最让我惦记莫过于食尖上的诱惑 还有那个曾同我一起看...
    魁歌阅读 1,585评论 3 5