【发布时间】:2014-02-04 13:50:36
【问题描述】:
#include <stdio.h>
#define foo(x, y) #x #y
int main()
{
printf("%s\n", foo(k, l));
return 0;
}
输出:kl
我知道 ## 会进行连接。从输出看来,# 也进行了连接。
我对么?
如果我是正确的,那么## 运算符和# 运算符有什么区别?
【问题讨论】:
-
执行 gcc -E yourfile.c 并查看进行了哪些预处理
-
@JensGustedt:您链接了一个副本 :-)
-
@AaronDigulla,是的,我知道,但是副本的副本不一定与原始问题完全相同。我链接的那个实际上几乎相同。