電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
小提醒

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念
上一篇主題 :: 下一篇主題  
發表人 內容
lsk
喜歡上這裡的冒險者


註冊時間: 2007-06-20
文章: 93

20.59 果凍幣

發表發表於: 2008-3-7, AM 7:30 星期五    文章主題: 小提醒 引言回覆

在VC++的Debug模式下,變數如果沒有被初始化,會被Compile自動設定為0;可是在Release模式下,這個動作會被忽略。所以要是沒有好好的做初始化,有些很難發現的bugs就會在release的時候反咬你一口!

代碼:

//我們有一個變數a被拿來當作一個flag:
int a;

if( a == 0 )
 //do something...
else
 //do anther thing...


在Debug模式的時候,因為a會被預設成0,所以會do something...。但是在Release的時候,你無法預知a會是什麼值!它並不一定會是0,也因此得到了我們不想要的結果。

反過來說,要是你的Debug模式一切正常,但是Release卻有問題的時候,可以優先檢查你的變數是不是有適當的初始化了。

記下一個小提醒給大家也給我自己,因為我昨天才花了三四個小時抓了一個這樣的bug~ (嗚,沒錯,是我忘了初始化...)
回頂端
檢視會員個人資料 發送私人訊息
happylin
略有貢獻的成員


註冊時間: 2007-07-26
文章: 70

127.34 果凍幣

發表發表於: 2008-3-7, AM 9:02 星期五    文章主題: 引言回覆

看來你沒有看compiler 結果的習慣.
沒有初始化就用的變數. VC 都會給妳一個warring ..
回頂端
檢視會員個人資料 發送私人訊息
lsk
喜歡上這裡的冒險者


註冊時間: 2007-06-20
文章: 93

20.59 果凍幣

發表發表於: 2008-3-8, AM 2:55 星期六    文章主題: 引言回覆

happylin 寫到:
關於這個問題其實你可以多留意compiler的結果,
沒有初始化就用的變數. VC 都會給妳一個warring喔


多謝指教~ 新的VC2005有一大堆有關deprecated的function name的warning,常常一下幾百個,很容易就被忽略沒看了 Razz

另外,我做了個實驗,如果是local variable(像我在上面寫的例子),的確會在warning list裡面看到warning C4700: uninitialized local variable 'aa' used。可是要是是一個member variable(我自己犯的例子)或是一個global variable沒有初始化,compiler是不會有反應的。(我的warning level是W3) 同樣的情況也發生在gc++。

所以還是要養成好的習慣呢~







--

對不起,忍不住在引用的地方改了樓上的回文。討論和回應是很好的,但是兄台您的筆鋒實在太銳利,我第一眼看完的第一個反應是:"誰說我都沒在看!",當場就想反駁回去。然後想想,的確,我是沒有每一次都看的;這才去做了點實驗。再請多多指教。
回頂端
檢視會員個人資料 發送私人訊息
vamper
對這略感興趣的新人


註冊時間: 2007-06-23
文章: 29
來自: 台灣
18.82 果凍幣

發表發表於: 2008-3-8, AM 9:42 星期六    文章主題: 主題能吃嗎? 引言回覆

最怕的是工程師討厭看一推warning,就直接針對某些warning打上:

#pragma warning(disable: 4700) 或是在專案設定忽略重要的warning。

BCB2007滿好玩的是,出現3百多的警告之後,直接給你一錯誤訊息:

對不起先生!你的警告太多了,不給你繼續compiler。

我也火大,把warning全部忽略掉= =。(這是不好的,請不要跟我一樣)
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作