【发布时间】:2025-12-02 10:15:01
【问题描述】:
还有下一段代码:
#include <iostream>
#define F(x) (2*x*x)
using namespace std;
int main()
{
int a = 1, b = 2;
int res = F(a + b);
}
res值是6,但是为什么呢?
【问题讨论】:
-
试试
#define F(x) (2*(x)*(x)),看看你会得到什么。 -
宏是简单的文本替换。您的宏扩展为
(2*a+b*a+b)