交换布尔值

时间:2017-12-30 02:55:58

标签: c++

我一直在制作一个注册了dll的菜单,用于调用现代战争3。当我在菜单中添加选项时,我想创建一个允许我交换bool值的空格。

我试过了:

void swapBool(bool& xbool)
{
    if (xbool)
       !xbool;
    else if (!xbool)
        xbool;
}

但是,它不起作用。 这就是我希望它实现的目标:

if (displayInfoBox)
    displayInfoBox = false;
else if (!displayInfoBox)
    displayInfoBox = true;

因为有很多bools和更多来了我想创造一个空洞...

                if (offHostScroll == 0)
                {
                    if (rgbEffects)
                        rgbEffects = false;
                    else if (!rgbEffects)
                        rgbEffects = true;
                }
                else if (offHostScroll == 1)
                {
                    if (rgbMenu)
                        rgbMenu = false;
                    else if (!rgbMenu)
                        rgbMenu = true;
                }
                else if (offHostScroll == 2)
                {
                    if (rgbBakcground)
                        rgbBakcground = false;
                    else if (!rgbBakcground)
                        rgbBakcground = true;
                }
                else if (offHostScroll == 3)
                {
                    if (rgbMaps)
                        rgbMaps = false;
                    else if (!rgbMaps)
                        rgbMaps = true;
                }
                else if (offHostScroll == 4)
                {
                    if (rgbInGameIcons)
                        rgbInGameIcons = false;
                    else if (!rgbInGameIcons)
                        rgbInGameIcons = true;
                }
                else if (offHostScroll == 5)
                {
                    swapBool(displayInfoBox);
                    /*if (displayInfoBox)
                        displayInfoBox = false;
                    else if (!displayInfoBox)
                        displayInfoBox = true;*/
                }

1 个答案:

答案 0 :(得分:2)

简单地:

displayInfoBox = !displayInfoBox;

xbool = !xbool;

!本身不会改变变量的值,它只是通过否定它来创建一个新值,所以你必须重新分配它。

您还必须通过引用swapBool通过xbool

void swapBool(bool& xbool);