使用常量时,错误C2057期望常量表达式

时间:2013-10-02 09:38:31

标签: c arrays compiler-errors size

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

 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:表达式constante atteue”第16行 - kiss_fft_cpx samples [nfft]; “错误C2057:需要持续表达”

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

由于

1 个答案:

答案 0 :(得分:2)

  

考虑到nfft是一个事实,我不明白出了什么问题   恒定

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

也许您可以使用宏来代替:

#define NFFS (256 * 1024)

顺便提一下,还有关于此主题的C FAQ条目:I don't understand why I can't use const values in initializers and array dimensions