我在调用带有包含 getch() 的参数的函数时遇到了一些奇怪的行为。
以下面的代码为例:
_Bool IsKeyDown(char c)
{
if(!kbhit())
return 0;
char ch1 = getch();
printf("%c\n", c);
return 0;
}
/*
*
*/
int main(int argc, char** argv) {
while(1)
{
IsKeyDown('a');
IsKeyDown('b');
Sleep(100);
}
return (EXIT_SUCCESS);
}
当用这个代码按下一个键时,无论如何,它总是会打印'a',这是第一个函数的参数。问题是,“a”不是被调用的第二个函数的参数,但仍然打印“a”而不是“b”。为什么会出现这种情况?