vallinkをご存知だろうか?MS-DOS上でのプログラミングをしていた人なら知っている人も少なくないとは思うが、16ビット用のリンカである。パブリックドメイン扱いであり無料で利用できるため、アセンブラA86と併せてよく使っていた。今ではアセンブリ言語でのプログラミングをすることはなくなったので忘れ去っていたが、ハードディスクを整理していたら出てた。懐かしいので話題にすることにする。
機能・性能としてはごく普通のリンカなのであるが、ソースコードがかなりイカレている。無用なマクロ定義を多用していてCらしくないコードになっているのだ。一部を抜粋してみよう。
#define If if ( #define Then ) { #define Else } else { #define ElseIf } else if ( #define EndIf }
なんていうか、もう、勘弁してください。