Когда я прочитал ,inline bool objc_object :: isTaggedPointer(); Как работает эта функция?
Я не могу понять, как работает эта функция.
inline bool
objc_object::isTaggedPointer()
{
return ((uintptr_t)this & TAG_MASK);
}
Ниже приведены как TAG_MASK определяют:
#if SUPPORT_MSB_TAGGED_POINTERS
# define TAG_MASK (1ULL<<63)
# define TAG_SLOT_SHIFT 60
# define TAG_PAYLOAD_LSHIFT 4
# define TAG_PAYLOAD_RSHIFT 4
#else
# define TAG_MASK 1
# define TAG_SLOT_SHIFT 0
# define TAG_PAYLOAD_LSHIFT 0
# define TAG_PAYLOAD_RSHIFT 4
#endif
Я знаю, что если TAG_MASK равен 1, то функция возвращает false.But Когда функция возвращает истину, и поэтому эта функция может судить результат. Спасибо!