• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語にてwindowsアプリケーションを作成しています。)

C言語にてWindowsアプリケーションを作成する際に疑問に思ったif文の動作について

このQ&Aのポイント
  • C言語にてWindowsアプリケーションを作成していますが、if文で行われている比較について疑問があります。
  • 具体的には、変数の頭に「!」が付くことでどのような動作になるのか知りたいです。
  • 初歩的な質問で申し訳ありませんが、教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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プログラムのソースを参考にする時には、上記の事を念頭に入れておくと良いでしょう。

19820202
質問者

お礼

詳しく解説していただきありがとうございます。

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

!は否定形ですね。hPrevが0の場合を判断してます。

関連するQ&A