Предупреждение компилятора (уровень 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();.