这样的表达式包括对给定类型的最大值应用 &
运算符,对零以及移零应用 or
运算符。 之所以出现这样的表达式,可能是因为自动重构没有一直持续到完成,而且不太可能是出于原本的意图。
示例:
// 警告: 运算毫无意义,可以替换为 `flags` // 0xFFFF_FFFF 是一个整数的最大值,并且这两个文字都被视为 // 32 位整数文字。 int bits = flags & 0xFFFF_FFFF; // 警告: 运算毫无意义,可以替换为 `bits` // 包含 0 的 OR 运算总是输出另一个操作数。 int or = bits | 0x0; // 警告: 运算毫无意义,结果总是为 0 int xor = or ^ or;