[#] [Перевод] main(){printf(&unix["\021%six\012\0"], (unix)[«have»]+«fun»-0x60);}
habrabot(difrex,1) — All
2016-10-28 14:00:05


## Развлекаемся, «распутывая» код на языке Си

Вызов: Прежде чем лезть под кат, скомпилируйте в голове заголовок статьи, что он дает на выходе?

![image][1]
Когда я в очередной раз просматривал книгу «Expert C programming», я вдруг наткнулся на раздел «light relief» в международном конкурсе на самый запутанный код на Си ([IOCCC][2]). Это соревнование по написанию как можно более нечитабельного кода. То, что такие конкурсы устраиваются для Си, наверное, говорит что-что об этом языке. Мне хотелось увидеть работы участников этого соревнования. Не найдя никакой информации в интернете, я решил поискать их самостоятельно.

IOCCC был придуман Стивеном Борном, когда он решил использовать препроцессор Си и написать Unix shell как бы на языке Си, но больше похожем на язык Algol-68, с его явными окончаниями операторов, например:

if
...
fi
Он добился этого, сделав:

#define IF if(
#define THEN ){
#define ELSE } else {
#define FI ;}

Что позволило ему писать так:

IF *s2++ == 0
THEN return(0);
FI

[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/313/607/582/3136075824da622da17f179baca6c787.jpg
[2]: http://ioccc.org
[3]: https://habrahabr.ru/post/313598/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut