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(...){
...
}
Другие вопросы по тегам