Я работаю над проектом os161. Я создаю файл, который включает array.h в src/kern/include. Когда я компилирую, у меня была ошибка: ./../include/array.h:85: error: expected '=', ',', ';', 'asm' или 'атрибут' before 'без знака' ../../include/array.h:91: ошибка: ожидается, '=', ' ' ';', 'ASM' или' атрибут' до 'пустоты'OS161 ожидается '=', ',', ';', 'asm' или '__attribute__' перед ошибкой
код как:
#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 предоставляется, и я не сделал никаких изменений. На самом деле не могу понять, почему.
Ошибка говорит о том, что компилятор не может понять, что такое 'INLINE'. Может быть, '#define ARRAYINLINE INLINE' является' define ARRAYINLINE inline', запрашивая компилятор 'inline' функции? Если нет, определяется ли 'INLINE' при компиляции? –
Постарайтесь получить текст программы после препроцессора и показать его. Например. для gcc это опция «-E». Наиболее вероятным вариантом является определение INLINE или странное. – Netch
Можете ли вы добавить массив const struct, пожалуйста? И еще немного кода. Какова ваша команда для компиляции? – Patapoom