- ベストアンサー
BOOL値を逆にしたい
【環境】 WindowsXP(SP2) VisualStudio2005++(MFC) タイトルの通りなんですが、ある条件の時に BOOL flg; の値をtrueの場合は「false」に、 falseの場合は「true」にしたいです。 参考書やネットを探してみたんですが、 「これ!」ってのが見つけられず(そもそも何でググれば良いのか分からない・・・。)、どなたか教えてくださいませんか? if(flg) flg = FALSE; else flg = TRUE; これじゃ汚いですよね・・・?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
flg = !flg; 否定した値(つまり、反対の値)を取ればよい。
その他の回答 (1)
- LongSecret
- ベストアンサー率68% (22/32)
回答No.2
BOOLはWinDef.hでintのtypedefとして 定義されていますが falseがFALSE(0)固定で trueがTRUE(1)固定にするなら flg^=1; //flg^=TRUE; で大丈夫です。 0以外の何かが入っているけど1とは限らない状態がtrueで、そこから 逆のFALSEかTRUEにするなら flg=!flg; でいいと思います。
質問者
お礼
早速のご回答ありがとうございます! ご丁寧に色々記載いただき、感謝感謝ですm(__)m
お礼
早速のご回答ありがとうございます!