2013-10-02 30 views
1

這是我的問題,我必須在這裏丟失的東西。錯誤C2057預期恆定表達,而使用常量

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示例[nfft]; 「error C2057:constant expression required」

考慮到nfft是一個常量,我不明白什麼是錯的。

感謝

回答

2

我不明白什麼是錯的考慮的事實,N FFT是一個 不變

在C const變量是不是真的常數,更喜歡讀 - 只有物體。因此,它們不能用於所有可以使用常量的地方(例如數組的大小)。

也許你可以使用宏來代替:

#define NFFS (256 * 1024) 

另外還有就是關於這個問題一個C FAQ條目:I don't understand why I can't use const values in initializers and array dimensions

+0

謝謝你現在的答案。 – Alroc