匿名 C 类型的 C++ 别名

c++ alias for anonymous c type

本文关键字:C++ 别名 类型 匿名      更新时间:2023-10-16

我热衷于尽量减少对第三方标头(kiss_fft.h)的依赖。标头中定义了一个匿名结构,我真的很想在我的代码中互换使用我自己的别名(或一些模糊的等效物)。

我不应该更改的外部定义:

typedef struct {
    float r;
    float i;
} kiss_fft_cpx;

我的第一次尝试:

typedef kiss_fft_cpx FTBuffer;
// yields error: 'kiss_fft_cpx' does not name a type

我的第二次尝试:

struct FTBuffer : public kiss_fft_cpx {};
// yields error: expected class-name before '{' token

我想我的问题是kiss_fft_cpx是一个变量而不是一个类型,但也许你知道有一个解决方法......?

我在这里和更广泛的网络上搜索了解决方案,但没有任何东西跳出来。我希望这只是我知识上的一个空白,但接受可能没有可取的解决方案。提前乐观感谢!

typedef struct {
    float r;
    float i;
} kiss_fft_cpx;
typedef kiss_fft_cpx FTBuffer;
int main()
{}

作为 C++ 和 C 都可以正常工作,所以问题是你做的其他事情(或者更确切地说,不做)。