0xDEADBEEF odpowiednik dla rozwoju 64-bitowego?
Dla rozwoju C ++ dla systemów 32-bitowych (czy to Linux,System operacyjny Mac lub Windows,PowerPC
lub x86) Mam zainicjowane wskaźniki, które w przeciwnym razie byłyby niezdefiniowane (np. nie mogą natychmiast uzyskać odpowiedniej wartości) w ten sposób:
int *pInt = reinterpret_cast<int *>(0xDEADBEEF);
(Aby zapisać pisanie i bycieSUCHY prawa strona normalnie byłaby stała, np. BAD_PTR.)
Jeśli pInt zostanie odreferencjonowany, zanim otrzyma odpowiednią wartość, natychmiastowo zawiesza się na większości systemów (zamiast zawieszać się znacznie później, gdy część pamięci zostanie nadpisana lub przechodzi w bardzo długą pętlę).
Oczywiście zachowanie jest zależne od podstawowego sprzętu (uzyskanie 4-bajtowej liczby całkowitej z nieparzystego adresu 0xDEADBEEF z procesu użytkownika może być całkowicie poprawne), ale awarie były w 100% niezawodne dla wszystkich systemów, które do tej pory opracowałem ( System operacyjny Mac68xxx, Mac OS PowerPC, Linux Redhat Pentium, Windows GUI Pentium, konsola Windows Pentium). Na przykład w PowerPC jest nielegalne (błąd magistrali) pobranie 4 bajtowej liczby całkowitej z nieparzystego adresu.
Jaka jest dobra wartość w przypadku systemów 64-bitowych?