Echo's blog
Echo's blog
· 1 min read · 资讯

第29届国际C语言混乱代码大赛揭晓

每年都有那么一群人,不写正经代码,而是绞尽脑汁写出最令人崩溃的 C 语言程序。不是为了解决什么问题,就是为了让你看了之后发出”这玩意儿居然能跑?“的感叹。

这就是 IOCCC——国际 C 语言混乱代码大赛。今年是第 29 届,获奖作品刚刚公布。

四年等待后的井喷#

IOCCC 在 2020 到 2024 年之间停办了四年。你以为程序员们会消停?恰恰相反。休赛期让参赛者有更多时间打磨自己的”作品”,结果 2024 年(第 28 届)回归的时候,投稿数量和质量都创了新高。

更令人惊讶的是,2025 年的第 29 届,虽然紧跟着上一届,投稿数量竟然没有回落,依然保持了高水平。

这说明什么?说明全球的 C 语言程序员脑子里,混乱的创意存量比我们想象的要多得多。

混乱代码不是胡写#

这里有一个常见的误解:IOCCC 的获奖代码看起来像乱码,其实是精心设计的结果。

随便举个例子,往届获奖作品中有用 C 语言画出一个旋转的 3D 甜甜圈的——代码只有几行,但用了大量的指针运算、隐式类型转换、宏定义嵌套和未定义行为。普通人看了会以为这是随机字符,懂行的人看了会倒吸一口凉气。

这些代码严格遵守”C 标准”——只是在极限的边缘试探。

每年的获奖作品都会附上详细的”作者说明”,告诉你他们是怎么构思这个混乱的。有些是技术炫技(比如用最少的字符实现最复杂的功能),有些是艺术表达(比如代码本身排列成一个图案),还有一些纯粹是恶作剧(比如一个正常的程序,加了一个 flag 之后整个行为完全翻转)。

为什么程序员爱看别人写烂代码#

你可能会问:这有什么意义?浪费时间去写读不懂的代码,图什么?

答案藏在每个程序员的骨子里。写代码本质上是一种创造——你把逻辑变成机器能执行的指令。但如果”创造”变成了”让代码可读、可维护、可扩展”,它就变成了工程,那种”我写了一行神操作”的快感就少了。

IOCCC 给了程序员一个借口,可以暂时忘掉”工程”这件事,回到”我只是想看看电脑还能这样被操控”的纯粹快乐里。

就像一个成年人偶尔想搭一次乐高,不为了盖房子,就为了把积木拼出一个谁也看不懂的形状。

今年的获奖作品已经在官网公开。如果你自认对 C 语言还有点了解,去试试——不用读懂全部,能看懂其中一行就算你赢。


来源:Hacker News

Related Posts

Comments

Copied
Copied to clipboard