gpt4 book ai didi

c - 为什么这会做任何事情?

转载 作者:太空狗 更新时间:2023-10-29 15:47:02 25 4
gpt4 key购买 nike

#include <stdio.h>
void littledot(){}//must use C, not C++

int main() {
littledot(568,76,105,84,116,76,101,68,111,84);
printf("%c%c%c%c%c%c%c%c%c\n");

getchar();
return 0;
}

以上代码产生结果“LiTtLeDoT”。为什么要这样做?为什么 568 至关重要?

最佳答案

这因平台而异并且是 UB(实现可以做任何它想做的事*),但在 littledot() 返回并且 printf 从堆栈打印这些参数后,littledot() 的参数可能仍在堆栈中。

永远不要依赖这个!


*真的是什么。 Afaik 一个古老版本的 GCC 在遇到某些行为未定义的行为时启动了一个视频游戏。

关于c - 为什么这会做任何事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7622559/

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