我曾经设法返回该函数,当我运行测试时,它通过了 我在utils.c上有这个函数:
int (util_sys_inb)(int port, uint8_t *value) {
uint32_t val;
if(sys_inb(port, &val) != OK) return 1;
*value = (uint8_t)val;
return 0;
}
这个只是为了包装函数 sys_inb((,因为参数的格式。 然后我需要正确调用它的次数。 我有另一个文件:keyboard.c,带有全局变量,extern int count。
使用此函数:
int sys_inb_count(int port, uint8_t *value) {
if(util_sys_inb(port,value)!=OK){ return 1;}
count++;
return count;
}
我做对了一次,返回第一个函数的值,但后来我做了一些不同的事情,测试无法再通过。 谢谢你能帮忙,我,我一直在拔头发。
我尝试了,将计数器直接放在第一个功能上,它起作用了,但后来我尝试再次这样做,然后我不能再做了。
它可以编译并运行,但我得到这个: https://i.stack.imgur.com/tFpVR.jpg
问题是我只在函数按预期工作时才添加到计数器,如果它被调用并给出错误,它不会计数 我只是将计数器添加到util_sys_inb:
uint32_t count = 0;
int (util_sys_inb)(int port, uint8_t *value) {
uint32_t val;
if(sys_inb(port, &val) != OK) return 1;
*value = (uint8_t)val;
count++;
return count;
}