您的位置:首页 > 编程语言 > C语言/C++

【C++问题总结】尽量减少使用宏,因为即使加了括号也可能会出问题

2012-05-10 19:03 531 查看
#include <iostream>

using namespace std;

#define SQR(x) ((x) * (x))

int main()
{

int i=3;
cout<<"aaa"<<endl;
i=3;
cout<<SQR(++i)<<endl;
system("pause");
return 1;
}

Bug分析: 

当调用如下语句时:

i=3;

SQR(++i);
将宏展开就是:

((++i) * (++i));

结果就是

4*5=20;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ include
相关文章推荐