Cプリプロセッサの最高の悪用
受賞者:David Goodenough
動作・解説にジャンプ »
引用元:https://www.ioccc.org/1990/dg.c
審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/1990/dg.hint
ROT13エンコーダ。
$ gcc -o dg dg.c $ echo Hello | ./dg Uryyb
トークンを1つだけ追加するマクロを大量に定義し、それらを組み合わせるだけでプログラムを構成している。 単純だがおもしろい。
#define aqu(x) x' #define bqu(x) 'x aqu(bpu(A))
によって'A'を作り出す、というのは動かないので、これは'A'に置き換えた(このことはdg.hintにも書かれている)。 また、#define d defineのトリックも動かないので書き下した。
'A'
#define d define
パッチをダウンロード