- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語にてwindowsアプリケーションを作成しています。)
C言語にてWindowsアプリケーションを作成する際に疑問に思ったif文の動作について
このQ&Aのポイント
- C言語にてWindowsアプリケーションを作成していますが、if文で行われている比較について疑問があります。
- 具体的には、変数の頭に「!」が付くことでどのような動作になるのか知りたいです。
- 初歩的な質問で申し訳ありませんが、教えていただけると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 if(!hPrev)は、hPrevの値が0であれば「4」が実行され、hPrevの値が0以外であれば「4」は実行されません。 「!」を取り除いてif(hPrev)にすると、hPrevの値が0以外であれば「4」が実行され、hPrevの値が0であれば「4」は実行されません。 if構文の話はこれ位に留めておきます。 WinMainの第2パラメータhPrevは、windows3.xで使用されていたパラメータです。windows95以降は、常に0で固定されていますので、処理をする必要はありません。 詳細は以下です。 http://msdn.microsoft.com/ja-jp/library/cc438750(VS.71).aspx http://msdn.microsoft.com/ja-jp/library/cc438719(v=VS.71).aspx 大昔のwindowsプログラムの中には、今現在のマイクロソフトが「使用する事は望ましくない」としている、win32APIの呼び出しや、関数フラグを含んでいる可能性があります(MSDNで確認できます)。 大昔のwindowsプログラムのソースを参考にする時には、上記の事を念頭に入れておくと良いでしょう。
その他の回答 (1)
- SaKaKashi
- ベストアンサー率24% (755/3136)
回答No.1
!は否定形ですね。hPrevが0の場合を判断してます。
お礼
詳しく解説していただきありがとうございます。