gpt4 book ai didi

你能帮我写一个可以自行打印的短代码吗?

转载 作者:太空狗 更新时间:2023-10-29 14:56:38 29 4
gpt4 key购买 nike

#define q(k)main(){return!puts(#k"\nq("#k")");}
q(#define q(k)main(){return!puts(#k"\nq("#k")");})

这段代码可以在屏幕上打印自己,但是,我读起来有困难,尤其是那两个#K,它是如何工作的?我知道#define q(k) 2*k 是如何工作的,但我真的不知道这段代码。请帮我分析一下!谢谢!

最佳答案

简化调用并使用编译器的预处理器来查看发生了什么:

#define q(k)main(){puts(#k"hello("#k")");}
q(argument)

运行 gcc -E 可以得到:

main(){puts("argument""hello(""argument"")");}

如您所见,q 宏的参数被转换为字符串(因为 is 被用作 #k - 这有时被称为“字符串化”)。这里没有其他魔法。

关于你能帮我写一个可以自行打印的短代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8200668/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com