VS中Debug和Release版本的区别
之前寫過一段代碼,能在VS2013的Release下運行,但是不能在Debug下運行,所以又深入學習了一番,下面是學到的經(jīng)驗。(橙色表示引用,紅色表示重點)
VS中的程序有Debug和Release兩個版本,其不同之處:
綜述:
? ? ? ?Debug程序通常比Release程序運行的慢,尤其在處理視頻方面,Release要比Debug快很多。在我看的資料中,似乎在Release模式下容易出現(xiàn)這樣的問題:變量雖然初始化,但是在看其值時卻發(fā)現(xiàn)是一個隨機的數(shù),并不是初始化時的賦予這個變量的值。其原因大概是這樣的:
? ? ? ? Debug在初始化變量時,將每個字節(jié)位都賦成0xcc,代碼存在錯誤在debug方式下可能會忽略而不被察覺到。debug方式下數(shù)組越界也大多不會出錯。
? ? ? ? Release在初始化變量時,其賦值是近似于隨機的。如果你的程序中的某個變量沒被初始化就被引用,就很有可能出現(xiàn)異常:
? ? ? ? 用作控制變量將導致流程導向不一致;
? ? ? ? 用作數(shù)組下標將會使程序崩潰;
? ? ? ? 更加可能是造成其他變量的不準確而引起其他的錯誤。
所以在聲明變量后馬上對其初始化一個默認的值是最簡單有效的辦法,否則項目大了你找都沒地方找。
1、Debug通常稱為調(diào)試版,包含調(diào)試信息,不會做任何優(yōu)化,便于程序員調(diào)試程序,有的錯誤類似數(shù)組越界,Debug模式下,一般不會報錯,但是Release就會;只有DEBUG版的程序才能設(shè)置斷點、單步執(zhí)行、使用 TRACE/ASSERT等調(diào)試輸出語句
2、Release稱為發(fā)布版本,會進行各種優(yōu)化,不包含提示信息,使得程序在代碼大小和運行速度上都是最優(yōu),一般不允許用戶在發(fā)布版調(diào)試,即在Release下,不允許調(diào)試。
參考:https://www.cnblogs.com/shangbolei/p/4950128.html
?
總結(jié)
以上是生活随笔為你收集整理的VS中Debug和Release版本的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抗日之铁血救国女主有几位
- 下一篇: 三张表有重复字段_什么?搞不定Kafka