intタイプ、a、b、および フラグの 2 つの変数があるとしFます。
#define F <something>
int a = <something> ;
int b = <something> ;
aとの両方がフラグ をb持っているか、フラグを持っていないかをテストする簡単な方法は何Fですか?
両方がそれを持っているかどうかをテストするには、次のようなものを使用できます。
if ( a & b & F )
それらのどれも持っていないかどうかをテストするには、次のようなものを使用できます。
if ( !((a & F) || (b & F)) )
そして、テスト全体は次のようになります。
if ( (a & b & F) && !((a & F) || (b & F)) )
しかし、これは長すぎて複雑すぎるように見えます。もっと簡単な解決策はありますか?