程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-關於win32 api中宏定義有一處不理解

c++-關於win32 api中宏定義有一處不理解

編輯:編程綜合問答
關於win32 api中宏定義有一處不理解

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

這段代碼我知道:宏定義,用KEYDOWN(vk_code)替代((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)

但是不可思議的來了,它直接這樣寫:

KEYDOWN(VK_UP)

我可以理解這是什麼意思,就是說((GetAsyncKeyState(VK_UP) & 0x8000) ? 1 : 0)

但是邏輯上我不能理解的是,宏定義應該是死的吧,怎麼可能用得這麼“活”,

定義上說是KEYDOWN(vk_code)替代((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)

那就必須只能是KEYDOWN(vk_code)啊,怎麼可能換裡面的參數然後另一個也換

還可以這樣用的?

最佳回答:


用宏定義來代替函數,這是很常見的做法啊。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved