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

2016-11-11  本文已影响6人  _江小白_

宏是危险的

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

#define CAL ((x)*(x)*(x))


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

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

inline int  cal(int i){
  return i*i*i;
}
上一篇下一篇

猜你喜欢

热点阅读