※ 引述《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