在 Visual Studio 2019 中将 bool 变量作为参数传递给需要 BOOL 参数的函数

And*_*kle 0 c++ mfc boolean visual-c++

采取这个示例代码:

void CChristianLifeMinistryDiscussionsDlg::SetControlStates()
{
    if (m_pEntry == nullptr)
        return;

    bool bClass1 = false, bClass2 = false;
    m_pEntry->GetAuxiliaryClasses(bClass1, bClass2);

    m_cbBrothersC1.EnableWindow(bClass1 ? TRUE : FALSE);
    m_cbBrothersC2.EnableWindow(bClass2 ? TRUE : FALSE);

}
Run Code Online (Sandbox Code Playgroud)

EnableWindow需要一个类型为 的参数BOOL。我永远不清楚bool在这种情况下仅传递变量的值是否可以接受。

IIn*_*ble 5

ABOOL是 的类型别名int。type 的值bool可以隐式转换为 type 的值int。这称为积分提升,定义明确:值false变为 0,值true变为 1。

将类型的值传递给需要类型(即)bool参数的函数是安全且定义良好的。BOOLint