C字段类型不完整,没有前瞻性声明

时间:2016-07-04 14:10:31

标签: c gcc incomplete-type

我一直得到“字段有不完整的类型错误”,但我在代码中找不到该类型的任何前向声明,或者在其结构中找不到任何类型的前向声明 - 除了指针字段。我尝试了递归grep文件夹,但仍然找不到任何前向声明。

如何让GCC告诉我它认为前方声明在哪里?或者为什么它不完整?

尝试编译此文件:

https://github.com/pdJeeves/CreaturesLib/blob/master/src/biochemistry/emitter.c

获取此错误包括:

https://github.com/pdJeeves/CreaturesLib/blob/master/src/creature/creature.h

与成员

“struct Brain brain”

1 个答案:

答案 0 :(得分:1)

您的brain.horgan.h都以

开头
#ifndef _organ_h_
#define _organ_h_

这意味着在您包含第一个之后将不包括第二个。

您在#ifndef _something_h_内的多个地方使用brain.h是不寻常的。您应该只包含相关标题,而不是重新定义其内容。即只需#include lobe.h,而不是像struct BrainLobe;那样声明一个空的前向声明。