【发布时间】:2013-09-18 14:38:05
【问题描述】:
我阅读了以下代码:
#define MACRO(abc, def) {#def ## #abc}
char result[10] = MARCO(abc, def);
我知道##操作符是用来将两个字符串合并为一个的,但是def和abc前面的#呢?
【问题讨论】:
-
这记录在预处理器的手册中。查一下。
-
大概“MARCO”会报编译错误。
-
Stack Overflow 不能替代阅读文档。你问这个问题的事实让人觉得你很懒。
-
并且将两个字符串文字连接成一个标记也会产生错误。
-
我不同意上述观点 - 在 Stack Overflow 上找到答案比查找和挖掘文档要容易得多。我永远不记得哪个是哪个,哪个是 Google 的用途 - 快速的 Google 搜索让我直接进入这个 Stack Overflow 条目并回答我的问题。
标签: c macros c-preprocessor stringification