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したりしている。
#define
#ifdef
#include
次のようにPIN付きでコンパイルし、実行すると元のメッセージが出てくる。
$ gcc -DPIN=12345 -o tmp tmp.c $ ./tmp Hello, world!
コード形状は『私、能力は平均値でって言ったよね!』のキャラクター、マイル。
プリプロセッサで遊ぶ作品はよくあるけれど、それを出力することが主題となっている作品は見当たらなかったので作ったとのこと。
出力コードのテンプレートは圧縮されている。 CRC32が埋め込まれている。