gpt4 book ai didi

C 在函数定义中使用前向声明

转载 作者:太空狗 更新时间:2023-10-29 16:01:54 24 4
gpt4 key购买 nike

我正在从事一个项目,在该项目中我被迫使用一些以前编写的代码,这些代码使用许多调用其他头文件的头文件。我试图让我的应用程序保持分离,但我仍然需要使用前面代码中定义的许多类型和函数。

当引用其他头文件中声明的数据类型时,我在自己的头文件中添加了前向声明。我现在的问题是,我正在尝试从源文件的函数定义中引用 union 类型,但我不太确定该怎么做。

旧头文件:

/* filename: include.h */

typedef union SOME_UNION_TYPE
{
int a;
.
.
}SOME_UNION_TYPE;


我的源文件:

/* filename: file.c */

void func()
{
SOME_UNION_TYPE A;
.
.
return;
}


我知道在我的源代码中只包含“include.h”会更容易,但我尽量避免它。到目前为止,我的尝试是在我的头文件中转发声明 union ,希望将 typedef 名称公开给编译器。

我的头文件:

/* filename: file.h */

union SOME_UNION_TYPE;


但是,当我编译时,我收到一条错误消息,提示 func() 中 A 的大小未知。

提前感谢您的帮助。

最佳答案

如果需要创建类型的实际实例,则需要完整的声明,而不仅仅是名称。

在这种情况下,正确的做法是硬着头皮包含定义类型的头文件。

关于C 在函数定义中使用前向声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20339970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com