#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)啊,怎麼可能換裡面的參數然後另一個也換
還可以這樣用的?
用宏定義來代替函數,這是很常見的做法啊。