Поделиться через


C6314

Обновлен: Ноябрь 2007

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: ? :