c++ - 使用#define 函数获取错误值

标签 c++

有一个函数以两种不同的方式定义,一种使用#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/

相关文章:

c++ - 在自定义库中操作二维 C++ 数组 - 获取行数?

c++ - 二进制数据注入(inject)字符串

c++ - 棘手的空检查和调用

c++ - DLL缓存问题

c++ - 在 C++ 中制作 3d 文本编辑器

c++ - 试图用多态来沮丧,出了什么问题?

c++ - 科学模拟中适当的类(class)成员访问

c++ - 如何发现板上的 PCIe 总线拓扑和插槽编号?

c++ - 如何检查文件是否为常规文件?

c++ - 缩小转换为 MSVC 中的 bool 警告