未在此范围内声明错误 'xy'
Error 'xy' was not declared in this scope
我知道这个问题已经被问过很多次了。但是,就我而言,我不知道如何解决这个问题。然后,我决定发布并需要帮助来解决此问题。
#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##y
xy
根据 https://www.cprogramming.com/reference/preprocessor/token-pasting-operator.html
这解释了错误消息。显然,在这种情况下使用它是一个错误的变量。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 未在此范围内声明错误 'xy'
- C ++没有名为XY的成员,我在使用枚举时遇到错误