編譯器警告 (層級 3 和層級 4) C4101
'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();
。