美文网首页
预处理面——宏是危险的(inline)

预处理面——宏是危险的(inline)

作者: _江小白_ | 来源:发表于2016-11-11 19:36 被阅读6次

    宏是危险的

    宏可以充当函数使用,但又不是真正的函数。
    宏展开体属于函数体出现时的定义,并不是函数真实调用时的定义。

    #define CAL ((x)*(x)*(x))
    
    
    ---use--
    int i;
    ......
    int a=CAL(++i);//未定义或者说歧义
    

    使用内联函数或者静态函数替换

    inline int  cal(int i){
      return i*i*i;
    }
    

    相关文章

      网友评论

          本文标题:预处理面——宏是危险的(inline)

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