憂鬱なプログラムの間違え

さて、これは某タイピングソフトのソースコードの一部なわけですが、
これを見て、何か気づくでしょうか。特に、case 11000:の後ろのあたり。

まず、switch(msg)で、ウィンドウメッセージの振り分けを行います。
次に、case WM_COMMANDに来て、さらにここでswitch(LOWORD(wp))で振り分けを行い、
case 11000でコマンドを実行しているわけです。
で、問題はこのcase文の最後の部分で、まず、breakされます。
さて、その次に実行されるのはどこの行でしょうか?

そう、その次に実行されるのは、その下のほうにあるPostQuitMessage(0)
本来なら、breakの後に}を入れて、さらに、その後の行にbreakを入れないと、
この関数まで実行されるわけです。

この間違えに気づくのにどれだけかかったことか。。。
もうね、自分があふぉかと思いましたよ。
しかも、この問題の争点が、違うプロシージャに移行したときに、
何かが起きてると勘違いをして、根本的に仕組みを
変えたものもすでに実装しちゃってたりします。

なんかなぁ、憂鬱だ、、、

Posted at : 2005-06-12 12:13:36 / Category : none

コメント

まだコメントはありません

コメントを投稿


お名前


メールアドレス(返信を通知する場合のみ記入)

認証コード(171124 と記入してください)