加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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的未知大小.
在此先感谢您的帮助.

解决方法

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

在这种情况下,正确的做法是咬住子弹并包含定义类型的头文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读