c++ - C++ 宏中的 "##"是什么意思?

标签 c++ c c-preprocessor

<分区>

下面的“##”是什么意思?

#define CC_SYNTHESIZE(varType, varName, funName)\
protected: varType varName;\
public: inline varType get##funName(void) const { return varName; }\
public: inline void set##funName(varType var){ varName = var; }

最佳答案

运算符 ## 连接两个参数,在它们之间不留空格: 例如

#define glue(a,b) a ## b
glue(c,out) << "test";

这也将被翻译成:

cout << "test";

关于c++ - C++ 宏中的 "##"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18031280/

相关文章:

c++ - 理解 C++ 中的 volatile 关键字

c - 在这种情况下,您将如何避免错误共享?

使用 if 条件检查时,条件跳转或移动取决于未初始化的值

c - scanf 之后 fgets 不起作用

c - '#' 在 C 中到底做什么?

c++ - 聚合初始化,clang 要我破坏我的代码?

c++ - C:运行GSL函数

c++ - 预处理器中的命令连接

c++ - Windows .NET (C++) SpinWait 在 Linux 和 Mac OS X 上的等价物是什么?

macros - 如何使用先前的定义重新定义宏