为了账号安全,请及时绑定邮箱和手机立即绑定

C / C ++中的Test_bit宏

C / C ++中的Test_bit宏

守着星空守着你 2021-04-06 17:19:39
我试图通过ioctl()读取linux设备的输入,并且看到了很多带有“ test_bit”宏的代码示例,但是我发现的唯一代码是:#define test_bit(bit, array) (array[bit / 8] & (1 << (bit % 8))),它不起作用。我得出的结论是,为了拥有此宏,我的班级中可能要包含一些东西。有几天有人遇到这个问题,有人可以帮我吗?谢谢编辑:这是我正在运行的代码:void test(){uint8_t key_b[KEY_MAX/8 + 1];/* the events (up to 64 at once) */const char *keyboard = "/dev/input/keyboard0";int keybrdToCapture;int yalv;keybrdToCapture = open(keyboard, O_RDONLY);memset(key_b, 0, sizeof(key_b));ioctl(keybrdToCapture, EVIOCGKEY(sizeof(key_b)), key_b);for (yalv = 0; yalv < KEY_MAX; yalv++) {    if (test_bit(yalv, key_b)) {        switch ( yalv)            {            case 0x1c :                dial->setMessage("Enter");                dial->show();                break;            case 0x66 :                dial->setMessage("Home");                dial->show();                break;            case 0x3b :                dial->setMessage("F1");                dial->show();                break;            case 0x3c :                dial->setMessage("F2");                dial->show();                break;            default:                dial->setMessage("Unknow for now");                dial->show();            }    }}}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 547 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信