iOS中static、const、extern

2019-10-16  本文已影响0人  山有木枝壮
开发中阅读他人代码,经常看到const、static和extern关键字,记录下

1、const

用来定义常量,宏定义也可以定义常量,但是const可以在编译阶段检查错误,因此会增加编译时间。如下定一个常量字符串,该字符串不能被修改

NSString * const aString = @"test";

使用const修饰的全局常量可以在所有文件中访问,如果限定常量只能在当前文件中访问,可以加上static关键字

static NSString * const aString = @"test";

const修饰的位置不同,代表的含义不同,但是修饰的右边总是不能被修改

- 1.const NSString *aString = @"test";
"*HSCoder"不能被修改, "HSCoder"能被修改

- 2.NSString const *aString = @"test";
"*HSCoder"不能被修改, "HSCoder"能被修改

- 3.NSString * const aString = @"test";
"HSCoder"不能被修改,"*HSCoder"能被修改

注意:1和2其实没什么区别,一般我们使用第3中定义方式,不想真正的常量被修改

2、static

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{    
    //声明一个局部变量i
    static  int i = 0;    //每次点击view来到这个方法时让i自增
    i ++;    //打印结果
    NSLog(@"i=%d",i);
}

3、extern

与static相反,extern用来修饰外部全局变量,但是只能用来定义,真正的变量值需要在.m文件中实现

上一篇下一篇

猜你喜欢

热点阅读