編譯程式警告 (層級 4) C4457
'identifier' 的宣告會隱藏函式參數
本機範圍中標識碼的宣告會隱藏同名函式參數的宣告。 此警告可讓您知道本機範圍中標識符的參考會解析為本機宣告的版本,而不是參數,可能是或可能不是您的意圖。 若要修正此問題,建議您提供與參數名稱不衝突的局部變數名稱。
範例
下列範例會產生 C4457,因為 中的 member_fn
參數x
和局部變數x
具有相同的名稱。 若要修正此問題,請針對參數和局部變數使用不同的名稱。
// C4457_hide.cpp
// compile with: cl /W4 /c C4457_hide.cpp
struct S {
void member_fn(unsigned x) {
double a = 0;
for (int x = 0; x < 10; ++x) { // C4457
a += x; // uses local x
}
a += x; // uses parameter x
}
} s;