Я работаю над xinu, и мне нужно изменить некоторые файлы *.c
. У меня есть этот -структуру в файле ready.c
:undefined символ struct pointer
struct newtimer{
struct newtimer* tnext;
struct newtimer* tprev;
int tkey;
int tprio;
int tcount;
};
, а потом я заявил:
struct newtimer *timer = NULL;
я сделал некоторое использование с таймера переменной в этом файле и мне нужно, чтобы использовать его в другой файл также (clkint.c
). Таким образом, в clkint
я это сделал:
extern struct newtimer *timer;
(который компилирует хорошо) , но когда я пытаюсь получить доступ к таймера «s поля я получаю эти ошибки:
Что я делаю неправильно?
Спасибо
редактировать:
В соответствии с просьбой, вот некоторые из clkint.c
:
struct newtimer *t;
extern struct newtimer *timer;
...
t = timer;
while(t!= NULL)
{
++(t->tcount);
if(t->tcount >= 18){
t->tcount = 0;
newprior = proctab[t->tkey]->pprio + 10;
t->tcount = newprior;
chprio(t->tkey, newprior);
}
t = t->tnext;
resched();
}
редактировать:
Замена всех t
с с timer
s делает не решить проблему.
Можем ли мы увидеть содержимое функции clkint? – bstamour
Похоже, вам нужен заголовочный файл '.h', который объявляет вашу структуру' newtimer', так что вы можете вставить его в clkint.c, чтобы clkint.c узнал о структуре. –
@RobertHarvey не выполняет ключевое слово * extern *? –