美文网首页
const static extern #definf

const static extern #definf

作者: CoderChou | 来源:发表于2017-11-14 23:06 被阅读7次

    const

    • const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p)
    • 被const修饰的变量是只读的。

    static

    static修饰后,不能提供外界访问
    1、修饰局部变量:

    • 延长局部变量的生命周期,程序结束才会销毁。
    • 局部变量只会生成一份内存,只会初始化一次。
    • 改变局部变量的作用域。

    2、修饰全局变量

    • 只能在本文件中访问,修改全局变量的作用域,生命周期不会改
    • 避免重复定义全局变量

    extern

    • 只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量
    • 先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找

    static const 与 extra 小结

    1、开发中static与const的联合使用 定义一个只能在当前文件访问的全局常量
    static NSString*const cellID =@"cellIdentifier";
    2、开发中static与const的联合使用 定义一个项目都能访问的全局常量
    .h文件
    extern NSString *const VERSION_INFO_CURRENT;
    .m文件
    NSString *const VERSION_INFO_CURRENT = @"currentversion";

    #define

    • 只是在预处理器里进行文本替换,没有类型,不做任何类型检查

    总结:宏与常量区别

    • 宏是预编译(编译之前处理),const是编译阶段
    • 宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误
    • 宏能定义一些函数,方法 const不能
    • 使用大量宏,容易造成编译时间久,每次都需要重新替换

    相关文章

      网友评论

          本文标题:const static extern #definf

          本文链接:https://www.haomeiwen.com/subject/zndqvxtx.html