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