【发布时间】:2014-01-04 10:20:40
【问题描述】:
我的代码中有这个问题:
bool CBase::isNumber()
{
return (id & MID_NUMBER);
}
bool CBase::isVar()
{
return (id & MID_VARIABLE);
}
bool CBase::isSymbol()
{
return (id & MID_SYMBOL);
}
【问题讨论】:
-
你试过
return (id & MID_NUMBER) > 0;吗? -
id 或 MID_SYMBOL 必须是 BOOL 类型。这只是#define 到 Windows 中的 int 类型。您的返回值为 BOOL 并转换为 bool(true 或 false )。
-
(id & MID_NUMBER) != 0;是避免警告的一般方法。 -
我通常关闭的警告之一:#pragma warning(disable: 4800)
标签: c++ visual-c++-2010 visual-c++-2008