0

私はos161プロジェクトに取り組んでいます。src / kern/includeにあるarray.h提供を含むファイルを作成します。コンパイルすると、次のようなエラーが発生しました:./../include/array.h:85:error:expected'='、'、'、';'、'asm' or'attribute' before'unsigned ' ../../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ファイルは提供されており、変更はしていません。本当に理由を理解することはできません。

4

2 に答える 2

1

私もos161に取り組んでいます。INLINEは定義されていません#define ARRAYINLINE inline。代わりに使用してみてください。

[編集]

os161 のリビジョンを確認しました。の前にこの行を見つけました#define ARRAYINLINE INLINE

#define INLINE extern inline

したがって、この行も含まれているかどうかを確認してくださいarray.h(私の場合は115)

[/編集]

于 2012-03-26T12:42:30.703 に答える