OC中的 static、extern 、const关键字

C 语言中 static 关键字的作用

  • 在模块(文件)内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内。即对其他模块隐藏
  • 函数体内 static 变量的作用范围为该函数体,该变量被分配到静态存储区,所以内存只被分配一次(只初始化一次,并且默认初始化为0),因此其值在下次调用时仍维持上次的值。即具备持久性和默认值为0

OC 中 static 关键字增加的作用

  • 在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的 static 成员变量。

extern 关键字

  • 在模块中使用其他模块声明的全局变量,使用 extern 关键字来获取。

const 关键字

  • const 关键字修饰右边的变量,这个变量不可修改(只读的)。
  • 注意
I 常量指针
// 初始化之后不能赋值,指向的对象可以是任意对象,对象可变。
NSString * const pt1;
II 指向常量的指针
// 初始化之后可以赋值,即指向别的常量,指针本身的值可以修改,指向的值不能修改
const NSString * pt2;
III 指向常量的常量指针
const NSString *  const pt3;

你可能感兴趣的:(OC中的 static、extern 、const关键字)