zoukankan      html  css  js  c++  java
  • ios--->const 用法总结

    const 用法总结

    宏、变量、常量区分
    • 宏:只是在预处理器里进行文本替换,没有类型,不做任何类型检查,编译器可以对相同的字符串进行优化。只保存一份到 .rodata 段。甚至有相同后缀的字符串也可以优化,你可以用GCC 编译测试,"Hello world" 与 "world" 两个字符串,只存储前面一个。取的时候只需要给前面和中间的地址,如果是整形、浮点型会有多份拷贝,但这些数写在指令中。占的只是代码段而已,大量用宏会导致二进制文件变大
    • 变量:共享一块内存空间,就算项目中N处用到,也不会分配N块内存空间,可以被修改,在编译阶段会执行类型检查
    • 常量:共享一块内存空间,就算项目中N处用到,也不会分配N块内存空间,可以根据const修饰的位置设定能否修改,在编译阶段会执行类型检查

    所以尽量使用const、其次是变量

    const修饰位置不同的含义
    1.const NSString *HSCoder = @"汉斯哈哈哈";
    "*HSCoder"不能被修改, "HSCoder"能被修改
    
    2.NSString const *HSCoder = @"汉斯哈哈哈";
    "*HSCoder"不能被修改, "HSCoder"能被修改
    
    3.NSString * const HSCoder = @"汉斯哈哈哈";
    "HSCoder"不能被修改,"*HSCoder"能被修改
    

    所以const修饰是指针和指针所指向的值,规律是const右边的总不能被修改

    const和static联合使用
    • 开发中static与const的联合使用 定义一个只能在当前文件访问的全局常量
    • static 类型 const 常量名 = 初始化值
  • 相关阅读:
    JS常见错误和分析
    angularjs 笔记(1) -- 引导
    各大浏览器hack
    AngularJS 配置和运行phonecat错误
    npm start 作用
    $.prop()和$.attr() 区别用法
    HDU 1251 统计难题 (Tire树)
    Luogu P3370 【模板】字符串哈希
    Luogu P3385 【模板】负环
    LuoguP1563 玩具谜题
  • 原文地址:https://www.cnblogs.com/frankltf/p/7833623.html
Copyright © 2011-2022 走看看