※ 引述《yoco.bbs@bbs.wretch.cc (眠月..)》之銘言:
> ※ 引述《UNARY.bbs@bbs.cse.ttu.edu.tw (API)》之銘言:
> > 實際上
> > 當我遇到那種 C4101 warning : "unreferenced local variable" 的情況時
> > 都是在「宣告一個變數 但沒初始化」的時候發生
> 我試了這段程式碼
> int main ()
> {
> int a, b ; // ab沒初始化
> int c=1, d=2 ; // cd有初始化
> std::cout << a << c ; // ac有用到,bd沒有用到
> }
> 得到的訊息是..
> warning C4101: 'b' : 未參考的區域變數
> warning C4700: 所使用的區域變數 'a' 尚未初始化
> 由此可見,也許變數的初始化也當作是被參考到..
> 我是不太清楚編譯器在這方面實作的細節,
> 不知道有沒有前輩要說說明一下...
看到這篇又去試了一下
結果同 yoco 試的
整理一下:
┌────┬────┬────┐
│宣告變數│未初使化│有初始化│
├────┼────┼────┤
│ 有用到│ C4700 │(無警告)│
├────┼────┼────┤
│ 沒用到│ C4101 │(無警告)│
└────┴────┴────┘
C4101: 未參考的區域變數
C4700: 所使用的區域變數尚未初始化
所以我先前的說法有些錯誤
要跟 khoguan 說聲抱歉~
C4101 跟「變數有沒有用到」的確也是有關係的
--
@, ●秘密情人● (bbs.cse.ttu.edu.tw)
~\ ◆ Post From: 61-70-137-117.adsl.static.giga.net.tw ◆