PHP написан на C, когда я прочитал исходный код, я обнаружил незнакомое расширение Macro, как показано ниже.
(size_t)(uint32_t)-(int32_t)(nTableMask) // nTableMask=-8
Я использую GDB для печати (size_t)(uint32_t)
, это неправильно
(gdb) p (size_t)(uint32_t)
A syntax error in expression, near `'.
но когда я меняю выражение, оно срабатывает
(gdb) p (size_t)(uint32_t)-(int32_t)(-8)
$21 = 8
Моя проблема:
что означает (size_t)(uint32_t)-(int32_t)(-8)
?
Я знаю, (size_t)(uint32_t)
неправильно, но почему (size_t)(uint32_t)-(int32_t)(-8)
правильное выражение?