C 前向报关查询

标签 c

我遇到这样一种情况,我的两个头文件都需要其中任何一个中定义的数据结构,即无论您以何种顺序包含它们,它都不会编译

但是,有问题的数据结构之一只包含指向另一个头文件中声明的数据结构的指针,所以我认为从技术上讲,此时它不需要知道有多大数据结构如此,所以它不应该提示

下面概述了我的意思的一个简化示例。我原以为库中的模式数组不需要知道模式有多大,只需要知道指向模式的指针有多大,因此如果编译器还没有看到模式的声明,它就不会提示在另一个头文件中。

header_1.h

typedef struct
{
    Mode **modes; 
} Library;

header_2.h

typedef struct
{
    int number;
    char *name;
} Mode;

最佳答案

它不需要知道大小,但它必须看到一个声明。前向声明

typedef struct Mode Mode;

struct Library 的定义就足够之前。

关于C 前向报关查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396152/

相关文章:

c - 服务器客户端程序未定义行为

C fread char 代码块

c++ - 有没有办法获取我发送给 C++ 中的对等方的 OpenSSL X509 证书名称?

创建一个使用指针在 C 中转换 Pascal 字符串的方法

c - LPC12xx I2C vector 到服务例程

C(不是++)struct动态初始化中struct数组的struct麻烦malloc

c - C++ 中未引用的形式参数警告(Visual Studio)

C 指针、最小值和最大值

c - 从客户端向服务器发送一个字符串

c++ - 如何编写 C 或 C++ 程序来充当内存和 CPU 周期填充器?