请问这句代码的详细解释?

lingang1234 2002-12-10 01:00:25
#define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)

#define KEY_UP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)

这是什么意思?请问这句代码的详细解释?
...全文
34 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaDan 2002-12-10
  • 打赏
  • 举报
回复
&0x80时判断ctrl键是否按下
&0x8000是????
GZCompiler 2002-12-10
  • 打赏
  • 举报
回复
#define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)

#define KEY_UP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)

带参数的宏,如KEY_DOWN(100)被替换成:
((GetAsyncKeyState(100) & 0x8000) ? 1 : 0)

功能是判断一个指定键码的按键是否被按下。

zxm954712 2002-12-10
  • 打赏
  • 举报
回复
#define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
这是一个宏定义,编译器在程序中遇到KEY_DOWN(vk_code)的时候会把它转化为
((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0). 然后执行这个语句.
这个语句首先调用函数GetAsyncKeyState(vk_code)得到key state然后和0x8000作位的与操作,如果结果为真,返回值为1,否则为0.
下面一个以此类推把
arya 2002-12-10
  • 打赏
  • 举报
回复
你什么地方不懂?
#define
GetAsyncKeyState
&运算符
? : 运算符
还是()?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧