1

这是我的问题,我必须在这里遗漏一些东西。

 const int nfft = 256 * 1024;
const float samplefrequency = 256.0 * 1024.0 ; // Hz

/* The buffer, spectral and data arrays for the FFT */
kiss_fft_cfg mybuff;
kiss_fft_cpx samples[nfft];
kiss_fft_cpx fftoutput[nfft];

/* The final, averaged spectrum */
double finalspec[nfft/2];

所以这是我的代码的一部分。

问题是我无法编译它,因为:“错误 C2057:表达式常量出席”第 16 行 - Kiss_fft_cpx samples[nfft]; “错误 C2057:需要常量表达式”

考虑到 nfft 是一个常数,我不明白有什么问题。

谢谢

4

1 回答 1

2

考虑到 nfft 是一个常数,我不明白有什么问题

在 C中,const变量并不是真正的常量,更像是只读对象。因此,它们不能用于所有可以使用真正常量的地方(例如数组的大小)。

也许您可以改用宏:

#define NFFS (256 * 1024)

顺便说一句,关于这个主题还有一个 C 常见问题解答条目:我不明白为什么我不能在初始化程序和数组维度中使用 const 值

于 2013-10-02T09:41:18.787 回答