有一个函数以两种不同的方式定义,一种使用#define,另一种使用函数。但是对于输出,我得到了不同的值。
输出结果为 3 -1
。
我想知道为什么使用 F(x,y)
会产生不同的值。
#include<iostream>
#define F(x,y) y-x
using namespace std;
int F2(int x,int y)
{
return y-x;
}
int main()
{
int x=1,y=2, h=2;
cout << F(x+h,y) << " " << F2(x+h,y) << endl;
return 0;
}
最佳答案
首先,您没有#define
函数,而是宏。宏进行直接文本替换,因此输出行等同于:
cout << y-x+h << " " << F2(x+h,y) << endl;
你现在能发现错误吗?
关于c++ - 使用#define 函数获取错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981266/