В переменной Keyb типа unsigned int каждый бит отвечает за срабатывание своей кнопки. Как лучше реализовать проверку этих битов? Делал так:
unsigned int temp;
temp=Keyb;
if (temp &= 0x0001) {printf("KN12\n");}
temp=Keyb;
if (temp &= 0x0002) {printf("KN11\n");}
temp=Keyb;
if (temp &= 0x0004) {printf("KN9\n");}
temp=Keyb;
if (temp &= 0x0008) {printf("KN6\n");}
temp=Keyb;
if (temp &= 0x0010) {printf("KN3\n");}
temp=Keyb;
if (temp &= 0x0020) {printf("KN8\n");}
temp=Keyb;
if (temp &= 0x0040) {printf("KN10\n");}
temp=Keyb;
if (temp &= 0x0080) {printf("KN5\n");}
temp=Keyb;
if (temp &= 0x0100) {printf("KN2\n");}
temp=Keyb;
if (temp &= 0x0200) {printf("KN1\n");}
temp=Keyb;
if (temp &= 0x0400) {printf("KN4\n");}
temp=Keyb;
if (temp &= 0x0800) {printf("KN7\n");}
temp=Keyb;
if (temp &= 0x1000) {printf("KN13\n");}
temp=Keyb;
if (temp &= 0x2000) {printf("KN14\n");}
temp=Keyb;
if (temp == 0x0000) {printf("RELEASE\n");}
Не нравится то, что в процессе проверки разрушается переменная temp и ее нужно постоянно восстанавливать.
Чувствую, что здесь напрашивается Switch case, но в условии case не знаю как реализовать маску.
Может кто подскажет более изящное решение?