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

标签 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

与成员(member)

“构造大脑大脑”

最佳答案

您的brain.horgan.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/

相关文章:

C 如何将随机数与用户输入进行比较

c - 为什么我的 printf 这样做?

c - 仅在将数组设为私有(private)后才进行多线程加速

使用未初始化的值时,编译器会发出警告吗?

c - gcc 删除内联汇编代码

c++ - 静态成员不允许使用不完整的类型

c - 在c中使用wait()与waitpid()

c++ - 对结构С++的误解

c++ - shared_ptr 析构函数、复制和不完整类型

可由文件控制的C调试器