条款02:尽量以const,enum,inline替换 #define

    xiaoxiao2023-12-17  159

    “宁可以编译器替换预处理器”:

     

    一、宏定义的名字被编译器看不到:

     

     

    二、关于class常量

     

     

     

    三、宏不注重作用域

     

     

    四、the enum hack

     

     

    所以,如果我们如果不想别人获得一个指针或引用指向你的某个整数常量,enum可以帮助你约束。

     

     

     

    五、宏定义max函数的缺陷

              宏只是单纯的替换

     

     

     

     

     

    总结:

    1、对于单纯常量,最好以const对象或 enums替换#defines。 2、对于形似函数的宏( macros),最好改用inline函数替换#defines。

     

    最新回复(0)