zoukankan      html  css  js  c++  java
  • Effective C++之条款2:尽量以const enum inline替换 #define

    本文的标题也可以改成“用编译器替换预处理器”:

    const double AspectRatio = 1.653;  
    //最好使用上述代码替换下述代码:
    #define ASPECT_RATIO 1.653

      好处:

    • 记号名称ASPECT_RATIO从未被编译器看见,也许在编译器开始处理源码之前它就被预处理器移走了。于是记号名称ASPECT_RATIO有可能没有进入记号表内。  
    • 如果当编译出现错误,这个错误信息有可能会提到1.653,而不是AspecRation,如果宏定义放在不是你写的头文件中,那么将很难追踪到这个错误。
    • 作为语言常量,AspecRation肯定会被编译器看到,也会进入记号表内,便于追踪错误。
    • 使用常量可能比使用#define导致较小量的码,因为预处理器会“盲目地将宏名称ASSPECT_RATIO替换为1.653”
    陈小洁的三只猫
  • 相关阅读:
    leetcode 对称二叉树
    leetcode 验证二叉搜索树
    蓝桥杯 完美的代价 贪心
    蓝桥杯 字符串对比 模拟
    蓝桥杯 芯片测试 极限找规律
    蓝桥杯 2n皇后问题 深搜
    74. 搜索二维矩阵
    二分 34
    二分 35
    二分 69
  • 原文地址:https://www.cnblogs.com/ccpang/p/11405956.html
Copyright © 2011-2022 走看看