DEADBEEF


 

“DEADBEEF”是什么?可能很多人都沒有聽說過。DEADBEEF不是“死牛肉”的意思,而是一個十六進制數字,即0xDEADBEEF。最初使用它的是IBM的RS/6000系統。在該系統中,已分配但還未初始化的內存中用該數字來填充,使得程序員在調試時可以很容易地定位到目標內存區域。

某些其他系統也使用DEADBEEF,例如運行在32位PowerPC處理器上的Mac OS和RS/6000一樣將其用於填充已分配但未初始化的內存;Solaris則用它來標記內核的空閑內存;在嵌入式系統中,經常用DEADBEEF來表示程序出錯奔潰或發生了死鎖。等等。

類似於DEADBEEF這樣的特殊數字還有很多,有一個專門的術語來稱呼它們,即“魔數”,Magic Number。

例如,經常使用VC編寫和調試程序的同學肯定都知道,空字符串在調試或打印時會顯示為很多“燙”字。這是因為VC使用0xCC來填充未初始化的內存,而0xCCCC在Unicode中表示的就是漢語的“燙”字。



可以參考WikiPedia了解關於魔數的更多資料:
Magic Number:http://en.wikipedia.org/wiki/Deadbeef
Hexspeak:http://en.wikipedia.org/wiki/Hexspeak

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM