C++中宏的使用问题详解

2020-01-06 15:08:48于丽

“d+1”的问题,可以通过在“调用”时或宏定义时添加一对圆括号来解决:


  #define square(x) ((x)*(x)) /*这样更好 */

但是, i++被执行了两次(可能并不是有意要这么做)的问题仍然存在。

是的,我确实知道有些特殊的宏并不会导致C/C++预处理宏这样的问题。但是,我无心去发展C++中的宏。作为替代,我推荐使用C++语言中合适的工具,例如内联函数,模板,构造函数(用来初始化),析构函数(用来清除),异常(用来退出上下文环境),等等。

好了,今天就先到这里,以后我们再来更深入的探讨这个问题



注:相关教程知识阅读请移步到C++教程频道。