Значение 0xDEADBEEF имеет три практических преимущества, в основном для старых систем. Старый ассемблер/C-хаки, как и я, использовал бы его для заполнения нераспределенной памяти, чтобы уладить проблемы с памятью. Кроме того, это каламбур сленгового термина «мертвое мясо». Программист - это мертвое мясо, если DEADBEEF завершается в своих указателях. Я поздравляю парня, который сначала подумал об использовании ценности DEADBEEF. Это умно по-разному.
По практическим соображениям, во-первых, это более заметно в дампе с шестнадцатеричной памятью, потому что на самом деле он произносит слова в отличие от случайных шестнадцатеричных значений.
Во-вторых, если значение набирает указатель, это скорее вызовет ошибку памяти вне диапазона.Адрес DEADBEEF был вне диапазона адресов систем (сейчас мы говорим о системах прошлого века) независимо от того, является ли система системным.
В-третьих, это более вероятно, приведет к сбою в системах, которые требуют даже значений указателя границы для доступа к 16/32/64-битным данным. Значение имеет большую вероятность ошибки, поскольку оба из 16-битных значений (DEAD, BEEF) являются нечетными.
Для меня это означает обед! – FrustratedWithFormsDesigner
«DEADBEEF» восходит десятилетиями, возможно, даже до Интернета. (Я бы предположил, что я использовал его в конце 70-х в IBM.) Это просто способ отметить, что легко видно в шестнадцатеричных дампах, хранилище, которое освобождено или иным образом не будет доступно. –
@HotLicks: действительно, http://www.catb.org/jargon/html/D/DEADBEEF.html –