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

在c中向前声明C中的匿名结构,第1张

概述我有一个第三方C库,其匿名结构类似于 typedef struct { ... }A; 该文件是通过程序自动生成的,因此可以根据某些内容进行更改 现在在C项目中,我接受上述类型的参数,例如as void foo(const A & in) { ... } 如何在定义上述函数的头文件中转发声明A? 我试过了 : typedef struct A 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)更为可取.

总结

以上是内存溢出为你收集整理的在c中向前声明C中的匿名结构全部内容,希望文章能够帮你解决在c中向前声明C中的匿名结构所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1243610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存