#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/