- ベストアンサー
BOOL へのUINT の代入
VC++6.0のサンプルでDAOVIEW があって、その中で、 あるクラスで BOOL m_nMaxRecords; が定義されていて、 これに、ほかのクラスで定義されている UINT m_nMaxRecords; の値を代入しているのですが、 これは、問題がないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
問題となることがあります。 BOOLは真/偽を表現する型なので BOOL b; if ( b ) ... や if ( b != FALSE ) ... は問題ありませんが if ( b == TRUE ) ... は真とならなくなるかも。 しかし m_nMaxRecords という変数名からして'最大レコード数'という意味でしょうから、こいつの型がBOOLというのも不可解ですが…
その他の回答 (1)
- sha-girl
- ベストアンサー率52% (430/816)
回答No.2
if()の括弧内は 0(FALSE)かそうでない(TRUE)かを判定します。 (nMaxRecordsが0でなければTRUEです。) MFCのBOOLはtypedef intで定義されているだけなので 特に問題は無いとは思いますが 個人的にはきちんと書いた方が良いと思います。
質問者
お礼
ありがとうございます。 さらに不思議なことに、 警告レベルを4 にして、コンパイルしても、 BOOLでも、UINTでも 警告数はおなじく16です。 とりあえず、 UINT として扱うことにします。
お礼
ありがとうございます。 さらに不思議なことに、 警告レベルを4 にして、コンパイルしても、 BOOLでも、UINTでも 警告数はおなじく16です。 とりあえず、 UINT として扱うことにします。