我一直得到“字段有不完整的类型错误”,但我在代码中找不到该类型的任何前向声明,或者在其结构中找不到任何类型的前向声明 - 除了指针字段。我尝试了递归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”
答案 0 :(得分:1)
您的brain.h
和organ.h
都以
#ifndef _organ_h_
#define _organ_h_
这意味着在您包含第一个之后将不包括第二个。
您在#ifndef _something_h_
内的多个地方使用brain.h
是不寻常的。您应该只包含相关标题,而不是重新定义其内容。即只需#include lobe.h
,而不是像struct BrainLobe;
那样声明一个空的前向声明。