- 论坛徽章:
- 0
|
最近看了一段程序,下面有点看不懂:
static unsigned get_word(void)
{
unsigned w;
w = get_char();
w |= get_char() << 8;
w |= get_char() << 16;
w |= get_char() << 24;
return w;
}
void (*code)(int r0, int r1, int r2, int r3);
int r0, r1, r2, r3;
while (1) {
switch (get_char()) {
case '3': /* Flush v3 MMU */
flush_v3();
break;
case '4': /* Flush v4 MMU */
flush_v4();
break;
case 'a': /* Ack please */
put_char('+'); /* we're fine, thanks */
break;
case 'c': /* Call (address, r0, r1, r2, r3) */
code = (void *)get_word();
r0 = get_word();
r1 = get_word();
r2 = get_word();
r3 = get_word();
drain();
code(r0, r1, r2, r3);
break;
}
绿色部分没看懂什么意思,程序中没见到有带4个参数的函数啊,帮我解释一下吧 |
|