C在函数定义中使用前向声明
发布时间:2020-12-16 09:49:12 所属栏目:百科 来源:网络整理
导读:我正在开发一个项目,我不得不使用一些以前编写的代码,它使用许多头文件来调用其他头文件.我试图保持我的应用程序分离,但我仍然需要使用前面代码中定义的许多类型和函数. 在引用其他头文件中声明的数据类型时,我在自己的头文件中添加了前向声明.我现在的问题
我正在开发一个项目,我不得不使用一些以前编写的代码,它使用许多头文件来调用其他头文件.我试图保持我的应用程序分离,但我仍然需要使用前面代码中定义的许多类型和函数.
在引用其他头文件中声明的数据类型时,我在自己的头文件中添加了前向声明.我现在的问题是,我正在尝试从源文件中的函数定义中引用联合类型,我不太清楚如何做到这一点. 旧头文件: /* 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的未知大小. 解决方法
如果您需要创建该类型的实际实例,则需要完整的声明,而不仅仅是名称.
在这种情况下,正确的做法是咬住子弹并包含定义类型的头文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |