isalnum(int c); 功能:判断字符c是否为字母或数字 那么 key=bioskey(0); if(isalnum(key & 0xff)){
首先这里的变量key应该是int类型的,在32位机上int型有4个字节,需要判断的字符为一个字节。
key & 0xff的目的是把key代表的值的高位清0,即使前3个字节清0,保留最后一个字节。 0xff是十六进制,十进制为255,二进制为1111 1111 &运算符是与运算bioskey(0)函数返回的是按键的扫描码,若低位不为0,此时表示字符的ASCLL码.若低位为0 ,高位是表示控制键,即CTRL,ALT,光标键等等,所以要判断字符c是否为字母或数字只要看低位是否为0就可以了.将key&0xff后,高位变成了0,如果结果为0,表示低位一定是0,那就不是字母或数字,反之就是字母或数字