そもそもC言語にはelse ifって構文はないよ。
んで、プリプロセッサは#の後をスペースなしの1語にした結果だと思う。