Не могу посчитать нужное количество раз, когда я вызываю функцию - PullRequest
2 голосов
/ 16 октября 2019

Мне однажды удалось вернуть функцию, и с этим, когда я запускаю тест, он прошел. У меня есть эта функция на 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://imgur.com/a/YZsd1Ok

1 Ответ

0 голосов
/ 21 октября 2019

Проблема заключалась в том, что я добавлял счетчик только тогда, когда функция работала, как ожидалось, если она была вызвана и выдавала ошибку, она не будет считать, я просто добавила счетчик к 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;

        }
...