文章出處
我在.h文件里定義一個static變量,
文章列表
const
const最好理解,修飾的東西不能被修改
指針類型根據位置的不同可以理解成3種情況:
I 常量指針
// 初始化之后不能賦值,指向的對象可以是任意對象,對象可變。
NSString * const pt1;
II 指向常量的指針
// 初始化之后可以賦值,即指向別的常量,指針本身的值可以修改,指向的值不能修改
const NSString * pt2;
III 指向常量的常量指針
const NSString * const pt3;
extern
等同于c,全局變量的定義,
//x .h 聲明
extern const NSString * AA;
//x .m 定義
const NSString * AA = @"abc";
// 調用
#import "x.h"
或者再次申明
extern const NSString * AA;
static
等同于c,將變量的作用域限定于本文件?
不同于java C++里面的類變量,oc沒有類變量
疑問
- static const NSString * const ChatWindow_STR_TITLE_INDEX[] = {
- @"msg_type_all",
- @"msg_type_area",
- @"msg_type_PM",
- @"msg_type_team",
- @"guild_title",
- @"msg_type_system",
- @"msg_type_world"
- };
我在.h文件里定義一個static變量,
I .h初始化
在不同的.m里調用都有值,這些值是否同一個對象?
【不同的對象】
II .m里初始化(or賦值)
初始化的值只在.m文件里有效果,即等同于c,將變量的作用域限定于本文件
其他.m文件調用的值都沒有賦值。
【不同的對象】
結論
static
// static變量屬于本類,不同的類對應的是不同的對象
// static變量同一個類所有對象中共享,只初始化一次
const
// static const變量同static的結論I,只是不能修改了,但是還是不同的對象
// extern const變量只有一個對象,標準的常量的定義方法
// extern的意思就是這個變量已經定義了,你只負責用就行了
http://blog.csdn.net/xpwang168/article/details/8087143
文章列表
全站熱搜
留言列表