我不断收到“字段有不完整类型错误”,但我在代码中找不到该类型的任何前向声明,或者其结构中的任何类型 - 除了指针字段之外。我尝试递归 grep 文件夹,但仍然找不到任何前向声明。
如何让 GCC 告诉我它认为前向声明在哪里?或者为什么它不完整?
尝试编译此文件:
https://github.com/pdJeeves/CreaturesLib/blob/master/src/biochemistry/emitter.c
获取此错误:
https://github.com/pdJeeves/CreaturesLib/blob/master/src/creature/creature.h
与成员(member)
“构造大脑大脑”
最佳答案
您的brain.h
和organ.h
均以
#ifndef _organ_h_
#define _organ_h_
这意味着在包含第一个之后,将不会包含第二个。
您在 brain.h
内的多个位置使用了#ifndef _something_h_
,这很不寻常。您应该简单地包含相关 header ,而不是重新定义其内容。 IE。只需#include lobe.h
,而不是声明一个空的前向声明,如struct BrainLobe;
。
关于C 字段类型不完整,没有前向声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38186751/