这个程序的输出是什么,请向我解释一下?
#include <stdio.h>
#define foo(m,n) m##n
int main()
{
printf("%s\n",foo(k,l));
}
答案 0 :(得分:1)
当我尝试编译此程序时,我收到此错误
[Error] 'kl' was not declared in this scope
实际上, ##运算符使用两个单独的标记并将它们粘贴在一起形成一个标记。生成的标记可以是变量名,类名或任何其他标识符。
所以在这里你试图打印一个标识符&#34; kl&#34;甚至没有宣布它。现在只需添加此行
char kl[16]="hello world!";
您将获得输出 hello world!