OS161在出错之前预期'=',',',';','asm'或'__attribute__'

时间:2012-03-26 09:10:04

标签: c os161

我正在研究os161项目。我在src / kern / include中创建了一个包含array.h的文件。当我编译时,我有这样的错误: ./../include/array.h:85:错误:在'unsigned'之前预期'=',',',';','asm'或'属性' ../../include/array.h:91:错误:在'void'之前预期'=',',',';','asm'或'属性'

代码如下:

#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 个答案:

答案 0 :(得分:1)

我也在研究os161。 INLINE未定义,请尝试使用#define ARRAYINLINE inline

[编辑]

我检查了我的os161版本。我在#define ARRAYINLINE INLINE

之前找到了这一行
#define INLINE extern inline

因此,请检查您的array.h是否也包含此行(在我的情况下为115)

[/编辑]

答案 1 :(得分:-1)

我也在OS161上工作,如果你的函数外面有一个随机字符,就会产生这个错误。 例如:

#include <...>
...
e //<-this random character that could have been mistyped.

sys_fork(...){
...
}