美文网首页
#define需要小心的使用

#define需要小心的使用

作者: _compass | 来源:发表于2019-04-11 16:41 被阅读0次

    记得有一天在我们代码里遇到一个Bug,即在定义define的时候,由于双目表达式中未加括号,而造成结果错误的问题。

    宏定义主要是用来定义常量,以及书写复杂且使用繁杂的表达式。它预编译的一部分,发生在编译之前,只是简单地进行字符串的替换,不会进行类型的检查。因此,在定义中,一定要小心的用括号括起来。
    例如:

    #define MIN(a,b)  ((a) <= (b)?(a):(b))
    

    在此,我又想到C++里的typedef,虽然typedef也是给一个对象取一个别名,但是它只是一种数据类型的别名,用来增强程序的可读性。

    例如:

    typedef unsigned int UNIT;
    

    相关文章

      网友评论

          本文标题:#define需要小心的使用

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