我正在做 os161 项目。我创建了一个包含 src/kern/include 中提供的 array.h 的文件。编译时,出现如下错误:./../include/array.h:85: error: expected '=', ',', ';', 'asm' or ' attribute ' before 'unsigned' ../../include/array.h:91:错误:在 'void' 之前应有 '='、','、';'、'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 文件,我没有对其进行任何更改。实在想不通为什么。