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


Предупреждение компилятора (уровень 3) C4101

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

Сообщение об ошибке

"идентификатор" : неиспользованная локальная переменная
'identifier' : unreferenced local variable

Локальная переменная не используется. Это предупреждение возникает в очевидной ситуации:

// C4101a.cpp
// compile with: /W3
int main() {
int i;   // C4101
}

Однако это предупреждение также может возникнуть при вызове функции-члена static через экземпляр класса:

// C4101b.cpp
// compile with:  /W3
struct S {
   static int func()
   {
      return 1;
   }
};

int main() {
   S si;   // C4101, si is never used
   int y = si.func();
   return y;
}

В этом случае компилятор использует сведения о si для доступа к функции static, но для вызова функции static экземпляр класса не требуется; поэтому и возникает предупреждение. Для решения проблемы можно:

  • Добавить конструктор, в котором компилятор будет использовать экземпляр si в вызове func.

  • Удалить ключевое слово static из определения func.

  • Вызвать функцию static явно: int y = S::func();.