递归宏点差的结果是什么

what is the result about the recursive Macro spread?

本文关键字:结果 结果是 是什么 递归      更新时间:2023-10-16
#include <iostream>
#define help(a) #a
#define xhelp(a) help(a)
#define glue(a,b) a##b
#define xglue(a,b) glue(a,b)
#define HIGHLOW "hello"
#define LOWLOW ",world" 
int main() 
{
              std::cout<<xhelp(xglue(HIGH,LOW))<<std::endl;
              return 0;
 }

这是我的测试代码。我想知道MACOR xglue(高,低)的传播。

对我来说,我认为结果是"你好"

但我从一个网站上了解到,结果是"你好,世界"。

我真的很困惑。

我的代码的结果是"你好"。

有人可以帮助我吗?

我认为xgule(高,低)=

胶水(高,低)=高低="你好"

网站显示xglue(HIGH,LOW)=glue(HIGH,LOW",world")="hello, world"

首先,没有递归宏。

示例中的大多数工作由两个预处理器运算符 ### 执行。

# 是一个一元运算符,可将其参数转换为字符串文本。

## 是一个二进制运算符,它将两个令牌粘贴在一起以形成一个令牌。

检查给定预处理器代码扩展到什么的最简单方法实际上是运行预处理器。g++编译器有一个-E选项来做到这一点。

# Assuming your file is saved as code.cpp
$ g++ -E code.cpp
... lots of output ...
int main()
{
    std::cout<<""hello""<<std::endl;
    return 0;
}
相关文章: