我下载了一个用 C 编写的代码示例,但不理解一条指令。此外,当我尝试编译代码时,编译器会在我不理解的行中向我抛出一个错误。
代码:
// Global vars
static int getting_text = 0;
static char *the_text; // Definition Part
static void (*text_entered)(); // Definition Part 2
// method
int add_text(unsigned char key)
{
char msg[] = "x";
int len;
if(!getting_text) return 0;
if(key==8) /* backspace */
{
len = strlen(the_text);
the_text[len-1] = '\0';
}
else if(key==13 || key==9) // cr or tab ends
{
getting_text = 0;
text_entered(the_text); // Execution Part
}
else
{
msg[0] = key;
strcat(the_text, msg);
}
glutPostRedisplay();
return 1;
}
编译器向我抛出一个关于方法调用中有太多参数的错误。但如果它是静态 void (*xxx)() 或其他东西的方法,我不知道。
提前致谢。