结构声明中的结构数组:"数组类型具有不完整的元素类型"

时间:2014-11-16 16:15:15

标签: c arrays struct compiler-errors declaration

我已将问题缩减到这个最小的测试用例:

#include <stdio.h>
#include <stdint.h>
typedef uint64_t hash_t;
struct hash_node {
   hash_t hash;
   int offset;
   int score;
};
struct hash_leaf {
   struct hash_leaf *next;
   int entries;
   struct hash_hode node[64];
};

int main(void)
{
   return 0;
}

我总是收到以下错误:

$ gcc foo.c
foo.c:12:18: error: array type has incomplete element type
 struct hash_hode node[64];
                  ^

我使用了gcc 4.8.1,4.8.3和4.9.0,所有这些都产生了相同的结果。这是错误还是编码错误?下面的一条评论发布了用于C ++编译器的代码,但这与gcc一起使用,而不是g++

1 个答案:

答案 0 :(得分:1)

hash_hode与hash_node不一样。

你有一个错字...一个H而不是N代表NODE