﻿# V521\. Expressions that use comma operator ',' are dangerous\. Make sure the expression is correct\.

Оператор запятая ',' используется для выполнения стоящих по обе стороны от него выражений в порядке слева направо и получения значения правого выражения\.

Анализатор обнаружил в коде программы выражение, в котором подозрительным образом используется оператор ','\. Высока вероятность, что текст программы содержит опечатку\.

Рассмотрим пример:

```cpp
float Foo()
{
  double A;
  A = 1,23;
  float f = 10.0f;
  return 3,f;
}
```

В данном коде переменной A будет присвоено значение 1, а вовсе не 1\.23\. Согласно правилам языка Си/Си\+\+ выражение "A \= 1,23" эквивалентно "\(A \= 1\),23"\. Также функция Foo\(\) вернет значение 10\.0f, а не 3\.0f\. В обоих случаях ошибка связана с использованием символа запятая ',' вместо символа точки '\.'\. 

Исправленный вариант кода:

```cpp
float Foo()
{
  double A;
  A = 1.23;
  float f = 10.0f;
  return 3.f;
}
```

**Примечание**\. Были случаи, когда анализатор не мог разобраться в коде и выдавал предупреждения V521 на совершенно безобидные конструкции\. Обычно это связано с использованием шаблонных классов или сложных макросов\. Если при работе с анализатором вы заметили подобное ложное срабатывание, то просим сообщить о нем разработчикам\. Для подавления ложных срабатываний можно использовать комментарий вида "//\-V521"\.