【发布时间】:2013-08-31 20:35:19
【问题描述】:
方案一:
#include <stdio.h>
#define foo(x, y) #x #y
int main()
{
printf("%s\n", foo(k, l)); //prints kl
return 0;
}
方案二:
#include <stdio.h>
#define foo(m, n) m ## n
int main()
{
printf("%s\n", foo(k, l)); //compiler error
}
为什么两个程序的输出会有这种差异? 这两个程序的具体区别是什么?
【问题讨论】:
-
#字符串化,##连接。这是一个骗局。