我从以下代码复制了Stack Overflow的404 Not Found Error页面。这段代码如何打印404?
# define v putchar
# define print(x)
main(){v(4+v(v(52)-4));return 0;}/*
#>+++++++4+[>++++++<-]>
++++.----.++++.*/
print(202*2);exit();
#define/*>[email protected]*/exit()
上面的代码编译好,并打印在控制台上。我认为陈述print(202 * 2);负责印刷,但我不是正确的,因为更改此声明中的数字还打印。
有人能帮我理解这段代码,它是如何打印的?
因为有评论说这段代码没有编译,所以我发布了编译输出以供参考。包含上述代码的文件是Test.c。
GCC TEST.C -o测试
TEST.C:3:1:警告:返回类型默认为 'INT'[-Wimplicit-INT] 主(){V(4 + V (v(52)-4)); return 0;}/* Test.c:在函数'main'中: Test.c:1:12:warning:隐式声明函数'putchar' [-Wimplicit-函数声明] #define v putchar ^ Test.c:3:8:note:in macro'v'main(){v(4 + v(v(52)-4)); return 0;}/* ^ Test.c:顶层:Test.c:6:14:警告:数据定义没有类型或存储类型print(202 * 2); exit(); ^ Test.c:6:14:warning:在'exit'声明中默认为'int'[-Wimplicit-int] Test.c:6:14:警告: 内置函数'exit'的冲突类型“
./Test
putchar(52)输出4; 52-4 = 48; putchar(48)输出0; 48 + 4 = 52; putchar(52)outpus 4再次。 –
https://meta.stackoverflow.com/questions/252184/whats-the-joke-in-the-stack-overflow-404-page-code – rsp
就问:亲爱的迁移到MSO选民:可以请你加点理由?我想我在这里错过了为什么应该迁移? –