OS161 ожидал '=', ',', ';', 'asm' или '__attribute__' до ошибки
Я работаю над проектом os161. Я создаю файл, который включает array.h, предоставленный в src / kern / include. Когда я компилировал, у меня была ошибка как это: ./../include/array.h:85: ошибка: ожидается '=', ',', ';', 'asm' или 'attribute' перед 'unsigned' ../../include/array.h:91: ошибка: ожидается '=', ',', ';', 'asm' или 'attribute' перед 'void'
код похож на:
#ifndef ARRAYINLINE
#define ARRAYINLINE INLINE
#endif
ARRAYINLINE unsigned --------------line 85 error
array_num(const struct array *a)
{
return a->num;
}
ARRAYINLINE void * --------------line 91 error
array_get(const struct array *a, unsigned index)
{
ARRAYASSERT(index < a->num);
return a->v[index];
}
и такого рода ошибки произошли в каждой строке что-то вроде INLINE или ARRAYINLINE. Этот файл array.h предоставлен, и я не внес в него никаких изменений. На самом деле не могу понять, почему.
2 ответа
Я тоже работаю на os161. INLINE
не определено, попробуйте использовать #define ARRAYINLINE inline
вместо.
[РЕДАКТИРОВАТЬ]
Я проверил мою ревизию os161. Я нашел эту строку до того, как #define ARRAYINLINE INLINE
#define INLINE extern inline
Поэтому, пожалуйста, проверьте, если ваш array.h
также содержит эту строку (115 в моем случае)
[/РЕДАКТИРОВАТЬ]
Я также работаю на OS161, эта ошибка может быть сгенерирована, если у вас есть случайный символ за пределами вашей функции. Пример:
#include <...>
...
e //<-this random character that could have been mistyped.
sys_fork(...){
...
}