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

在c中向前声明C中的匿名结构

发布时间:2020-12-16 04:58:35 所属栏目:百科 来源:网络整理
导读:我有一个第三方C库,其匿名结构类似于 typedef struct { ... }A; 该文件是通过程序自动生成的,因此可以根据某些内容进行更改 现在在C项目中,我接受上述类型的参数,例如as void foo(const A in) { ... } 如何在定义上述函数的头文件中转发声明A? 我试过了 :
我有一个第三方C库,其匿名结构类似于
typedef struct
     {
      ...
      }A;

该文件是通过程序自动生成的,因此可以根据某些内容进行更改

现在在C项目中,我接受上述类型的参数,例如as

void foo(const A & in)
  {
    ...
  }

如何在定义上述函数的头文件中转发声明A?

我试过了 :

typedef struct A A;

要么

struct A;

并且

typedef A A;

出于好奇.

但是,这会导致重新定义类型的编译时错误.
谢谢

解决方法

可悲的是,你运气不好.

A是未标记结构的typedef.并且您无法转发声明,因为您无法直接引用该结构.

你可以更改生成器,以便输出typedef struct A {…} A;?然后它可以在C和C中很好地编译,你可以在C中转发声明.

否则,您有两个选择:1.#include包含结构声明的文件. 2.手动复制结构.显然(1)更为可取.

(编辑:李大同)

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

    推荐文章
      热点阅读