Joh*_*ohn 5 c++ if-statement boolean
为什么第一个能够正确递增pbf_ [k]而第二个甚至不能(递增)一次?
unsigned pbf_[5] ={0};
bool m=0;
Run Code Online (Sandbox Code Playgroud)
代码1:
for(int k=0;k<5;k++)
{
if((m=(bit_table_[k][i][bit_index ] &bit_mask[bit]))==true)
pbf_[k]++;
}
Run Code Online (Sandbox Code Playgroud)
代码2:
for(int k=0;k<5;k++)
{
if((bit_table_[k][i][bit_index ] & bit_mask[bit])==true)
pbf_[k]++;
}
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,掩码的结果m在被比较为真之前被转换为bool .
在第二种情况下,我相信位掩码是一些整数类型.在这种情况下,true将被提升为相同的整数类型(并且值为1).
只需== true从比较中删除它们即可.