CPPの最高の悪用
受賞者:Raymond Cheong
動作・解説にジャンプ »
引用元:https://www.ioccc.org/2000/primenum.c
審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/2000/primenum.hint
一部の文字をxorでエンコードする。
$ gcc -o primenum primenum.c $ echo Hello 123 | ./primenum 3 Kfool 123 $ echo Hello 123 | ./primenum 3 | ./primenum 3 Hello 123
プログラムはPascal風というか擬似コード風に書かれていて、素直に読めば素数列挙のように思える。
しかし一部のマクロが明らかにおかしい定義になっている。 #define LessThanOrEqualTo !=とか#define Zero i%jとか。 実際には、上記の通りのテキストエンコーダとして振る舞う。
#define LessThanOrEqualTo !=
#define Zero i%j
シンプルなコンセプトできれいにまとまっている。 プリプロセスで生成されるコードは非常に小さいけれど、意外と読むのに時間がかかった。