【问题标题】:What does the "~0x80" mean in libxcb code sample?libxcb 代码示例中的“~0x80”是什么意思?
【发布时间】:2020-03-18 17:02:05
【问题描述】:
switch (event->response_type & ~0x80)

来自this sample code~0x80 是什么意思?

【问题讨论】:

    标签: x11 xcb


    【解决方案1】:

    我最近也有同样的问题。答案在X Window System Protocol, Event Format

    每个事件都包含一个 8 位类型代码。如果事件是从 SendEvent 请求生成的,则设置此代码中的最高有效位。

    ~0x80 的位与和事件类型代码(位于事件结构的 response_type 字段中)清除该位,以便事件代码可以正确匹配,无论来源如何(X 服务器本身该位未设置或其他客户端,例如窗口管理器,设置)为预期代码。

    【讨论】:

    • 我很惊讶不存在用于此的宏。做#define XCB_EVENT_MASK (~0x80)之类的事情有多难
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    相关资源
    最近更新 更多