3

我热衷于尽量减少对第三方标头(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是一个变量而不是一个类型,但也许有一个你知道的解决方法......?

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

4

1 回答 1

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

typedef kiss_fft_cpx FTBuffer;

int main()
{}

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

于 2012-08-16T15:28:25.797 回答