iOS零碎知识#iOS#HeminWoniOS开发

static和const的使用

2015-07-08  本文已影响3730人  zhazha

static

const

    // 定义一个指针变量
    int *p = NULL;

    // 定义2个int类型的变量
    int a = 10;
    int b = 30;

    // p指向a
    p = &a;
    *p = 20;

    // p指向b
    p = &b;
    *p = 40;

    NSLog(@"%d %d", a, b);
    // const修饰的*p
    const int *p = NULL;
    int const *p = null;

    *p = 20; // 编译器报错,不能修改*p的值
    // const修饰的指针变量p
    int * const p = NULL;
    int a = 20;

    p = &a; // 编译器报错,不能修改指针变量p
    NSString * const ZMJName = @"jack";

static和const联合使用

    // 定义了一个局部常量
    static const CGFloat ZMJRed = 0.4;
    static const CGFloat ZMJGreen = 0.6;
    static const CGFloat ZMJBlue = 0.7;

使用static const 与 #define

    // static const修饰变量只有一份内存
    static const CGFloat ZMJRed = 0.4;

    // 宏定义,只是用0.4替换ZMJRed,每次使用都需要创建一份内存
    #define ZMJRed 0.4

const实际开发的应用

// 引用某变量,如果没有使用const修饰,就不能直接在编译的时候就能检测是否修改了ZMJRed
extern const CGFloat ZMJRed;
extern NSString * const ZMJName;
- 可以模仿系统UIKIT_EXTERN来代替extern,逼格更高!
UIKIT_EXTERN const CGFloat ZMJRed;
UIKIT_EXTERN NSString * const ZMJName;
// 定义了整个程序都能访问的常量
const CGFloat ZMJRed = 0.4;
NSString * const ZMJName = @"jack";
上一篇下一篇

猜你喜欢

热点阅读