1. 程式人生 > >VC++ Debug跟Release下編譯器預設初始化變數的區別

VC++ Debug跟Release下編譯器預設初始化變數的區別

 

debug跟release在初始化變數時所做的操作是不同的,debug是將每個位元組位都賦成0xcc,而release的賦值近似於隨機。
debug版初始化成0xcc是因為0xcc在x86下是一條int 3單步中斷指令,這樣程式如果跑飛了遇到0xcc就會停下來,這和微控制器程式設計時一般將沒用的程式碼空間填入jmp 0000語句是一樣的。