Best abuse of CPP

CPPの最高の悪用

受賞者:Don Yang

引用元:https://www.ioccc.org/2020/yang/prog.c

審査員・作者による説明:https://www.ioccc.org/2020/yang/index.html

動作

メッセージとPIN(暗証番号)を次のように入力し、Cコードを生成する。

$ gcc -o prog prog.c

$ echo "Hello, world!" | ./prog 12345 > tmp.c

生成されたCコードは#define#ifdefを使いまくったり、自分自身を#includeしたりしている。

次のようにPIN付きでコンパイルし、実行すると元のメッセージが出てくる。

$ gcc -DPIN=12345 -o tmp tmp.c

$ ./tmp
Hello, world!

解説

コード形状は『私、能力は平均値でって言ったよね!』のキャラクター、マイル。

プリプロセッサで遊ぶ作品はよくあるけれど、それを出力することが主題となっている作品は見当たらなかったので作ったとのこと。

出力コードのテンプレートは圧縮されている。 CRC32が埋め込まれている。