我有 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/