Most useful obfuscation

もっとも便利な難読化

受賞者:Walter Bright

引用元:https://www.ioccc.org/1986/bright/bright.c

審査員・作者による説明:https://www.ioccc.org/1986/bright/hint.html

動作

ファイルの16進ダンプ。

$ gcc -o bright bright.c

$ ./bright hello.txt
   0: 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 20 49 4f    Hello, world! IO
  10: 43 43 43  a                                        CCC.

解説

バイナリの0と1にちなんで、識別子はOQ0IlL1で構成されているものがほとんど。 演算子もビット演算関係のものが無駄に多い。 単に読みにくくするのではなく、難読化のネタがプログラムの挙動にちなんだものになっている最初期の例。

現代のgccではcond && exit(1)error: void value not ignored as it ought to beになるので、cond && (exit(1), 0)などと変更する必要があった。

パッチ

パッチをダウンロード