2014-09-09 2 views
4

Существует перечисляющая структура, но я не понимаю значение «0xDEAD - 2» в этом перечислении.Что означает «0xDEAD» в следующем коде?

enum TerminatedTypes { 
    _not_terminated = 0xDEAD - 2, 
    _thread_exiting,        
    _thread_terminated,       
    _vm_exited         
}; 

Из кода выше, Какую выгоду я могу получить?

Код, приведенный выше, находится в 'hotspot/src/share/vm/runtime/thread.hpp' в openjdk8.

Я изучаю исходный код jdk, пожалуйста, помогите мне.

+4

Это всего лишь контрольное значение, потому что это шестнадцатеричное представление выглядит круто. –

+0

Это шестнадцатеричный литерал ... http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html – jdphenix

+3

Это пример [* magic number *] (http: //en.wikipedia. орг/вики/Magic_number_% 28programming% 29). Другой - '0xCAFEBABE'. –

ответ

9

Это шестнадцатеричный литерал, который используется в качестве защитного элемента (полезен в отладчиках), так что значение _thread_terminated будет равно 0xDEAD («завершенная нить» равна «мертвой»).

Здесь есть множество гекс-литералов для таких вещей, как DEADBEEF от the Jargon file и т. Д.

Смежные вопросы