zoukankan      html  css  js  c++  java
  • static,const,extern,以及全局常量

    1:全局常量的定义:1:创建Header头文件,再创建与Header头文件类名相同的空文件作为.m文件,.h文件引用文件,.m文件负责定义常量

    1 #import <UIKit/UIKit.h>
    2 
    3 UIKIT_EXTERN const CGFloat XMGRed;
    4 UIKIT_EXTERN const CGFloat XMGGreen;
    5 UIKIT_EXTERN const CGFloat XMGBlue;
    6 UIKIT_EXTERN const CGFloat XMGAlpha;
    7 UIKIT_EXTERN const int XMGAge;
    8 UIKIT_EXTERN NSString * const XMGName;
    #import <UIKit/UIKit.h>
    
    const CGFloat XMGRed = 0.4;
    const CGFloat XMGGreen = 0.6;
    const CGFloat XMGBlue = 0.7;
    const CGFloat XMGAlpha = 1.0;
    const int XMGAge = 20;
    NSString * const XMGName = @"jack";

    补充:1:若无法识别CGFloat结构体,则引入头文件,

    #import <UIKit/UIKit.h>

    2:.m文件中定义的常量,用const修饰代表常量。其中const CGFloat a = 10.f; 和 CGFloat const a = 10.f;两种写法是一样的,都代表a值为常量,不可修改,但是外部可通过extern CGFloat a;引用该变量,若无const,则通过extern引用a后也可修改。全局变量若只想被该文件所持有,不希望被外界引用,则用static修饰,也就是static  const  CGFloat a = 10.f;和 static  CGFloat  const a = 10.f;是一样的,注意只有全局变量用static修饰时,才只被该文件所持有,外界不可引用。

    const CGFloat XMGRed = 0.4;定义一个常量,若是全局变量,则可被外界引用,但不能修改

    3:定义不可变字符串时:用 static NSString * const name = @"JACK";则指针name不可变,外界不可以给该变量赋值。其中const修饰可变与不可变,就看const右边修饰的是什么 例如:NSString * const name = @"JACK",则代表指针name不可变,*name可变,若NSString  const  * name = @"JACK",则 *name不可变,指针name可变

    4:UIKIT_EXTERN:其实就是extern,最好加上const,来告诉外界这个引用变量不可改变。

    UIKIT_EXTERN const CGFloat XMGRed;

    5:宏定义 与 static const 修饰的全局常量的区别:一般项目中尽量避免使用大量的宏定义,因为每一个宏定义都会在内存中临时开辟一份内存空间,而static const 修饰的常量 ,则只会开启一份内存空间,其使用效果和宏定义相同,建议以后项目开发中定义常量时,多用 static const 来代替宏定义

    
    
  • 相关阅读:
    【酷熊科技】工作积累 ----------- 随机数 (带权重的随机数)
    【酷熊科技】工作积累 ----------- unity scrollview 点击后会有偏移问题(有图片)
    cocos2dx混合模式应用———制作新手引导高亮区域 (2.2.0)
    3.20 内存及效率的一些总结 3.21 设置竖屏 3.22 CCLOG与CCLog区别
    3.18 CCProgressTo 进度计时器
    3.16 draw 3.17 更新函数
    3.15 获取当前设备语言
    CCControlSwitch 、CCControlSlider、CCControlButton
    CCEditBox
    CCTextFieldTTF 与 5种常用CCMenuItem
  • 原文地址:https://www.cnblogs.com/cqb-learner/p/5716565.html
Copyright © 2011-2022 走看看