编译器警告(等级 3)C4101

更新:2007 年 11 月

错误消息

“identifier”: 未引用的局部变量

从未使用局部变量。在以下明显情况下显示该警告:

// 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。

  • 从 func 定义中移除 static 关键字。

  • 显式调用 static 函数:int y = S::func();。