ネタ元:インクリメント演算子
R.田中さんのブログを見て、初めてプログラミングをした日々を思い出しました。
就職して最初の配属先は、小型汎用機のCTRON準拠OSをC言語で開発していました。
プログラミング初心者の私は、先輩から渡された「はじめてのC」という本を片手に四苦八苦という状態で、
「正しく動作する」ものを作ってテストしてが、いっぱいいっぱいでした。
# この頃、この本のタイトルを声に出して言うのがためらわれたっけ。。。
でも、正しく動作するだけぢゃだめで、「性能バグ」なるものがあり、作っては直し、直してはダメだしされ。。。
そのときの1つに、「インクリメント・デクリメントはどっちでも良ければ前置」というものがありました。
これが染み付いてしまっているので、意味のない後置は落ち着かないです。。。
# 先輩の怒鳴り声が今でも聞こえるようで。。。
他にも、「ifとelseのifやcaseの順は性能ルートから」とか、
「for文の条件式はできるだけ定数と(0との比較がBest)」とか、
「ローカル変数の定義順は性能ルートで使用回数の多いものから先に」などなど、
数えきれないくらいのダメだしでした。
「あと3ステップ(アセンブラレベルで)性能向上して」みたいな、お題を出されたりも。。。
今思うと、C言語なのに、めっちゃアセンブラに落ちたコードを意識したものでした。
今では、あんなにシビアな性能を要求されることはないのですが、
「三つ子の魂」で覚えてしまったので今でも抜け切れません。。。