精華區beta Programming 關於我們 聯絡資訊
※ 引述《UNARY.bbs@bbs.cse.ttu.edu.tw (API)》之銘言: : ※ 引述《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; : } 其實 沒用到的東西 很多時候 compiler 會幫你清掉吧 看情況,很多不用在意, 但也有些後果會很嚴重 而且多餘的 code 阻礙閱讀 還是習慣好一點比較好 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.67.70