未在此范围内声明错误 'xy'

Error 'xy' was not declared in this scope

本文关键字:xy 错误 声明 范围内      更新时间:2023-10-16

我知道这个问题已经被问过很多次了。但是,就我而言,我不知道如何解决这个问题。然后,我决定发布并需要帮助来解决此问题。

#include <iostream>
#include <cstdio>
#define MERGE(a,b) a##b
using namespace std;
int main(){
double x, y;
cin>>x>>y;
cout<<MERGE(x, y)<<endl;
return 0;
}

[错误] "xy"未在此范围内声明

此代码中xy声明在哪里?

如果我想在主块中声明它,我应该使用什么样的解决方案?

##令牌粘贴运算符

它将在您的源代码中创建一些名为xy的变量,您尚未声明该变量。 如果这是你想要的 main 函数,你可以将 xy 声明为 ,

double xy{};

但是,我假设你在这里要做的是输出两个变量x和y。

只需将cout<<MERGE(x, y)<<endl;更改为以下内容即可。

std::cout<< x << " " << y << std::endl;

opeartor<<可以链接以产生所需的结果。

x##yxy根据 https://www.cprogramming.com/reference/preprocessor/token-pasting-operator.html

这解释了错误消息。显然,在这种情况下使用它是一个错误的变量。