精華區beta Programming 關於我們 聯絡資訊
※ 引述《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