• ベストアンサー

BOOL へのUINT の代入

VC++6.0のサンプルでDAOVIEW があって、その中で、 あるクラスで BOOL m_nMaxRecords; が定義されていて、  これに、ほかのクラスで定義されている UINT m_nMaxRecords; の値を代入しているのですが、 これは、問題がないのでしょうか?

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

  • ベストアンサー
回答No.1

問題となることがあります。 BOOLは真/偽を表現する型なので BOOL b; if ( b ) ... や if ( b != FALSE ) ... は問題ありませんが if ( b == TRUE ) ... は真とならなくなるかも。 しかし m_nMaxRecords という変数名からして'最大レコード数'という意味でしょうから、こいつの型がBOOLというのも不可解ですが…

uyama33
質問者

お礼

ありがとうございます。  さらに不思議なことに、 警告レベルを4 にして、コンパイルしても、  BOOLでも、UINTでも 警告数はおなじく16です。  とりあえず、 UINT として扱うことにします。

その他の回答 (1)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

if()の括弧内は 0(FALSE)かそうでない(TRUE)かを判定します。 (nMaxRecordsが0でなければTRUEです。) MFCのBOOLはtypedef intで定義されているだけなので 特に問題は無いとは思いますが 個人的にはきちんと書いた方が良いと思います。

uyama33
質問者

お礼

ありがとうございます。  さらに不思議なことに、 警告レベルを4 にして、コンパイルしても、  BOOLでも、UINTでも 警告数はおなじく16です。  とりあえず、 UINT として扱うことにします。

関連するQ&A