Objective-c中定义常量与静态变量区别?


   
  如:
  
1:const int NUMOFGHOST = 1 和 static const int NUMOFGHOST = 1;定义的区别?

2:const和static变量定义在实现文件中的不同地方也有什么区别呐?

objective-c cocoa

青春划破流沙 10 years, 8 months ago

Objective-C 和 C++ 类似,分别说明如下:
const就是只读的意思,只在声明中使用;
static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;
对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见.

static const 应该就是上面两者的合集.
下面分别说明:
全局:
const,只读的全局变量,其值不可修改.
static,规定此全局变量只在当前模块(文件)中可见.
static const,既是只读的,又是只在当前模块中可见的.
文件:
文件指针可当作一个变量来看,与上面所说类似.
函数:
const,返回只读变量的函数.
static,规定此函数只在当前模块可见.

八重雾中渡 answered 10 years, 8 months ago

Your Answer