0xDEADBEEF эквивалент для 64-битной разработки?

Для разработки C ++ для 32-битных систем (будь то Linux,Mac OS или Windows,PowerPC или x86) Я инициализировал указатели, которые в противном случае были бы неопределенными (например, они не могут сразу получить правильное значение), например так:

int *pInt = reinterpret_cast(0xDEADBEEF);

(Чтобы сохранить набор текста и существоDRY правая часть обычно бывала постоянной, например, BAD_PTR.)

Если pInt разыменовывается до того, как он получит правильное значение, то он будет аварийно завершать работу в большинстве систем (вместо сбоя намного позже, когда некоторая память перезаписывается или идет очень длинный цикл).

Конечно, поведение зависит от базового оборудования (получение 4-байтового целого числа по нечетному адресу 0xDEADBEEF от пользовательского процесса может быть совершенно допустимым), но сбой был на 100% надежным для всех систем, которые я разработал до сих пор ( Mac OS68xxx, Mac OS PowerPC, Linux Redhat Pentium, Windows GUI Pentium, консоль Windows Pentium). Например, в PowerPC запрещено (ошибка шины) получать 4-байтовое целое число с нечетного адреса.

Что хорошего в этом для 64-битных систем?

Ответы на вопрос(10)

Ваш ответ на вопрос