﻿# V707\. Giving short names to global variables is considered to be bad practice\.

Анализатор обнаружил в коде глобально объявленную переменную с коротким именем\. Это, если и не приведёт к ошибкам, то является плохим стилем программирования и усложняет понимание программы\.

Начнём с примера:

```cpp
int i;
```

Проблема в коротких именах переменных заключается в том, что достаточно легко ошибиться и использовать вместо локальной переменной глобальную внутри тела функции или метода класса\. Например, вместо

```cpp
void MyFunc()
{
  for (i = 0; i < N; i++)
    AnotherFunc();
  ....
}
```

должно быть:

```cpp
void MyFunc()
{
  for (int i = 0; i < N; i++)
    AnotherFunc();
  ....
}
```

В данных ситуациях анализатор будет предлагать изменить имя переменной на более длинное\. Минимальная длина, которая не является подозрительной для анализатора \- три символа\. Также анализатор не будет выдавать предупреждения на переменные с именами PI, SI, CR, LF\.

Анализатор не выдаёт предупреждения на переменные с коротким именем, если они представляют собой структуры\. Хотя это тоже плохой стиль кодирования, но случайно неправильно использовать структуру сложнее\. Например, если случайно написать так:

```cpp
struct T { int a, b; } i;
void MyFunc()
{
  for (i = 0; i < N; i++)
    AnotherFunc();
  ....
}
```

То код просто не скомпилируется\.

А вот на константы с короткими именами анализатор ругается\. Их нельзя менять, но ничто не мешает сделать неправильную проверку\. Пример:

```cpp
const float E = 2.71828;
void Foo()
{
  S *e = X[i];
  if (E)
  {
   e->Foo();
  }
  ....
}
```

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

```cpp
const float E = 2.71828;
void Foo()
{
  S *e = X[i];
  if (e)
  {
   e->Foo();
  }
  ....
}
```

Но лучше использовать более длинное имя или обернуть такие константы в специальный namesapce:

```cpp
namespace Const
{
  const float E = 2.71828;
}
```