我遇到了以下代码:
#include<stdio.h>
#define d(x) x(#x[3])
int main(){
d(putchar);
}
哪个打印c输出.我想知道宏有什么#define d(x) x(#x[3])作用?在C语言中有运营商#吗?我可以在宏体内看到这个,即这里x(#x[3]).根据我的正常眼睛,它看起来与我在C语言中看到的不同,但实际上这是做什么的?
编辑:#在现实世界中真正使用的是什么?
我是C的新手,如果解释简单,那将会很好.提前致谢.
Lau*_*all 24
字符'#'是字符串化器 - 它将符号转换为字符串.代码变成了
的putchar( "的putchar"[3]);