c - 前向声明 C

标签 c linux

我有 2 个头文件 api.h 和 impl.h

api.h 对外部文件可见,并将包含在其他“.c”文件中。所以api.h包括impl.h

api.h定义了2个结构体

typedef struct
    {
    uint32_t att;
    union
    {
        struct
        { 
            void* buffer;
            size_t length;
        } x;  
        struct
        {
            int a, b;
        } v;
    } content;
}dummy;

并且 impl.h 有一些其他结构和使用此结构的函数 def。 我尝试了前向声明,但它对我没有帮助。

请帮忙。

最佳答案

实际上,您的dummy 不是结构,而是未命名结构的typedef。尝试命名结构,然后可以转发声明它:

typedef struct sdummy dummy; // forward declaration

void foo(dummy *);

struct sdummy { ... }; // definition

关于c - 前向声明 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16979928/

相关文章:

android - 语法错误: Unterminated quoted string [Makefile]

c++ - "typedef"类型名称可以像 "struct"定义那样声明指向结构的指针吗?

c - Vugen - 将图像文件从一个文件夹复制到共享目录 - 仅限 C 代码

在 Linux/UNIX 上用纯 C 递归复制目录

linux - 英特尔 CPU 缓存策略

python - PySpark:如何在 worker 上安装 linux 命令行工具?

linux - 使用 "F served.."在多输出文件中打印由 "sed command"开始的行

c - 如何解决指针错误?

c++ - 外部限制程序帧率

linux - 在启动时在 linux (debian) 中运行程序