在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)更为可取. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |