Что означает «~ 0x80» в примере кода libxcb? - PullRequest
0 голосов
/ 18 марта 2020

switch (event->response_type & ~0x80) из введите описание ссылки здесь . Что означает «~ 0x80»?

1 Ответ

4 голосов
/ 18 марта 2020

У меня был тот же вопрос совсем недавно. Ответ можно найти в Системный протокол X Window, формат события :

Каждое событие содержит 8-битный код типа. Самый значимый бит в этом коде устанавливается, если событие было сгенерировано из запроса SendEvent.

Бит-и ~0x80 и код типа события (который находится в поле response_type структура события) очищает этот бит так, что код события может затем быть правильно сопоставлен независимо от источника (сам X Server, где этот бит не установлен или другой клиент, например, диспетчер окон, где он установлен установлен ) к ожидаемым кодам.

...