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

Passing a bool variable as a parameter to a function expecting a BOOL parameter in Visual Studio 2019

拿这个示例代码:

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);

}

EnableWindow 需要 BOOL 类型的参数。我从来不清楚在这种情况下是否可以只传递我的 bool 变量的值。

A BOOL is a type alias for an int. A value of type bool can be implicitly convertedint 类型的值。这称为积分提升,定义明确:值false变为0,值true变为1。

将类型 bool 的值传递给需要参数类型 BOOL(即 int)的函数是安全且定义明确的。