• ベストアンサー

BOOL値を逆にしたい

【環境】 WindowsXP(SP2) VisualStudio2005++(MFC) タイトルの通りなんですが、ある条件の時に BOOL flg; の値をtrueの場合は「false」に、 falseの場合は「true」にしたいです。 参考書やネットを探してみたんですが、 「これ!」ってのが見つけられず(そもそも何でググれば良いのか分からない・・・。)、どなたか教えてくださいませんか? if(flg) flg = FALSE; else flg = TRUE; これじゃ汚いですよね・・・?

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.1

flg = !flg; 否定した値(つまり、反対の値)を取ればよい。

ya-cha
質問者

お礼

早速のご回答ありがとうございます!

その他の回答 (1)

回答No.2

BOOLはWinDef.hでintのtypedefとして 定義されていますが falseがFALSE(0)固定で trueがTRUE(1)固定にするなら flg^=1; //flg^=TRUE; で大丈夫です。 0以外の何かが入っているけど1とは限らない状態がtrueで、そこから 逆のFALSEかTRUEにするなら flg=!flg; でいいと思います。

ya-cha
質問者

お礼

早速のご回答ありがとうございます! ご丁寧に色々記載いただき、感謝感謝ですm(__)m

関連するQ&A