@hsuper

Что значит эта строчка?

Что значит эта строка? => if(GetAsyncKeyState(VK_F1) & 1)

А именно почему там & 1 ?
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState.

Проверка на младший бит (сокращённая запись if ((GetAsyncKeyState(VK_F1) & 1) != 0). Он означает: с предыдущего вызова GetAsyncKeyState клавиша хоть раз нажималась. С одной стороны, этот бит нерекомендуемый (работает, когда нет других программ, вызывающих GetAsyncKeyState). С другой, возможно, младший бит GetAsyncKeyState() в современной реализации Windows работает именно так, как надо (если программа неактивна, GAKS возвращает 0).

GAKS обычно используется в играх и прочих динамичных программах; в рабочем ПО используют оконные сообщения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час