C6314

警告 C6314:运算顺序不正确: 按位或的优先级高于条件表达式运算符。 请使用括号明确指定优先级

此消息意味着在条件运算 (?:) 的被测试表达式中检测到包含按位或运算符 (|) 的表达式。

条件运算符的优先级比按位运算符的优先级低。 如果被测试表达式中应当包含按位或运算符,则应当在条件表达式的两侧加上括号。

示例

下面的代码生成此警告:

int SystemState();

int f(int SignalValue)
{
  return SystemState() | (SignalValue != 0) ? 1 : 0;
}

若要更正此警告,请使用下面的代码:

int SystemState();

int f(int SignalValue)
{
  return SystemState() | ((SignalValue != 0) ? 1 : 0);
} 

请参见

参考

Bitwise Inclusive OR Operator: |

Conditional Operator: ? :