不解gocha
Cform 2007-05-08 04:01:41 gotcha错误7练习#include <iostream>
typedef unsigned short Bits;
inline Bits repeated( Bits b, Bits m )//看不懂该函数与下面这个函数的用法有何不同,它与下面这个函数比有除了能减少
循环外有何优点,请详述.
{ return b & m & (b & m)-1; };能把这句解释一下吗?
void dowop1( Bits options ) {
int ctr = 0;
for( int i = 0; i < 8; ++i )
if( options & 1<<(8+i) )还有这句;
if( ctr++ ) {
std::cerr << "Too many options selected" << std::endl;
break;
}
}
void dowop2( Bits options ) {
if( repeated( options, 0XFF00 ) )
std::cerr << "Too many options selected" << std::endl;
}
void boolTest() {
std::cout << "=== bool test ===" << std::endl;
Bits opts[] = { 0x0000, 0x1000, 0x1011, 0x2100, 0xf000 };
for( int i = 0; i < sizeof(opts)/sizeof(opts[0]); ++i ) {
std::cerr << "Options: " << std::hex << opts[i] << std::endl;
dowop1( opts[i] );
dowop2( opts[i] );
}
}
谢谢,请详述