gpt4 book ai didi

c++ - 在 C++ 中从 C 向前声明匿名结构

转载 作者:可可西里 更新时间:2023-11-01 18:29:11 24 4
gpt4 key购买 nike

我有一个第三方 C 库,其匿名结构类似于

    typedef struct
{
...
}A;

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

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

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

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

我试过了:

 typedef struct A A;

 struct A;

还有

 typedef A A;

出于好奇。

然而,这些会导致重新定义类型的编译时错误。谢谢

最佳答案

遗憾的是你运气不好。

A 是未标记的 structtypedef。而且您不能转发声明,因为您不能直接引用该 struct

你能改变生成器使其输出typedef struct A { ... } A;吗?然后它在 C 和 C++ 中都能很好地编译,并且您可以在 C++ 中向前声明它。

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

关于c++ - 在 C++ 中从 C 向前声明匿名结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38874235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com