※ 引述《khoguan.bbs@ptt.cc (Khoguan Phuann)》之銘言:
> 這應該是 VC++ 的 warning, 但我剛才用我裝的 VC++ 7.1 去測,
> 將warning層級調到最高,並未出現任何 warning。我想是舊版的
> VC++ 弄錯了,而新版的改正了。
> 因為所謂的 unreferenced local variable 指的是宣告了
> 那個區域變數,但是後面卻沒「提及、使用」它(unreferenced)
> (和指標指向哪裡是兩回事),因此好心通知你,不要做虛工。
> 但是原先那個程式後來明明有在 cout << sizeof(ptr) 這個敘述中
> reference 到 ptr. 因此我才推測是舊版的 VC++ 弄錯了,而新版的
> VC++ 對此程式就不再發出 C4101 warning 了。
> 建議大家心平氣和的討論,讓網路成為一個更美好的世界。
實際上
當我遇到那種 C4101 warning : "unreferenced local variable" 的情況時
都是在「宣告一個變數 但沒初始化」的時候發生
比如說
int main(){
int x;
return 0;
}
寫這種樣子,就會發出 C4101
但是如果那行宣告是寫 int x=0; 就沒事了
而不是「有沒有用到」的問題
這在 VC6 跟 VC7.1 都是一樣的結果
另外,要是宣告一個具備 constructor 的 class
也不會有那個警告
您可以在 VC 裡面試試看以下兩段程式的編譯結果
class cc {
};
int main(){
cc t;
return 0;
}
// ----------
class cc {
public:
cc(){}
};
int main(){
cc t;
return 0;
}
--
@, ●秘密情人● (bbs.cse.ttu.edu.tw)
~\ ◆ Post From: 61-70-137-117.adsl.static.giga.net.tw ◆