Return 尝试编译 fftw 时出错
Return error while trying to compile fftw
C++新手问题。我正在尝试使用 FFTW 将 FFT 应用于复杂的一维数据。
# include <stdlib.h>
# include <stdio.h>
# include <time.h>
#include <fftw3.h>
int main(void)
{
int i;
int N=100;
fftw_complex *in;
fftw_complex *out;
fftw_plan plan_forward;
unsigned int seed = 123456789;
in= (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*N);
out= (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*N);
srand ( seed );
for ( i = 0; i < N; i++ )
{
in[i][0] = rand ( );
in[i][1] = rand ( );
}
plan_forward = fftw_plan_dft_1d ( N, in, out, FFTW_FORWARD, FFTW_ESTIMATE );
fftw_execute ( plan_forward );
for ( i = 0; i < N; i++ )
{
printf ( " %3d %12f %12f\n", i, out[i][0], out[i][1] );
}
fftw_destroy_plan ( plan_forward );
fftw_free ( in );
fftw_free ( out );
return;
}
编译后出现此错误:
错误:return-没有值的语句,在函数 returning ‘int’ [-fpermissive] 中
return;
我不知道如何解决这个错误。任何帮助,将不胜感激。谢谢
应该是
int N=100;
(注意用 ;
代替 ,
)
而ffftw_malloc
大概应该是fftw_malloc
(开头去掉了一个f
)。
此外,编译器可能会为您提供错误的行号,我建议您转到这些行并仔细检查它们,这样您就可以学会自己进行调试 ;)
最后,main
return 是一个整数,所以 return 语句需要一个值。 (0
应该没问题。) 注: main
函数的特殊之处在于它在末尾隐含了一个 return 0;
,所以它是唯一具有 return 值的函数,您可以在其中 "fall off the end"。但是,如果您在 main
中使用 return 语句,则必须提供一个值。
错误消息几乎不言自明 - 您需要更改:
return;
至:
return 0;
原因是 main
return 是一个 int
,所以你需要一个值,即你不能只是 return "nothing".
C++新手问题。我正在尝试使用 FFTW 将 FFT 应用于复杂的一维数据。
# include <stdlib.h>
# include <stdio.h>
# include <time.h>
#include <fftw3.h>
int main(void)
{
int i;
int N=100;
fftw_complex *in;
fftw_complex *out;
fftw_plan plan_forward;
unsigned int seed = 123456789;
in= (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*N);
out= (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*N);
srand ( seed );
for ( i = 0; i < N; i++ )
{
in[i][0] = rand ( );
in[i][1] = rand ( );
}
plan_forward = fftw_plan_dft_1d ( N, in, out, FFTW_FORWARD, FFTW_ESTIMATE );
fftw_execute ( plan_forward );
for ( i = 0; i < N; i++ )
{
printf ( " %3d %12f %12f\n", i, out[i][0], out[i][1] );
}
fftw_destroy_plan ( plan_forward );
fftw_free ( in );
fftw_free ( out );
return;
}
编译后出现此错误:
错误:return-没有值的语句,在函数 returning ‘int’ [-fpermissive] 中 return;
我不知道如何解决这个错误。任何帮助,将不胜感激。谢谢
应该是
int N=100;
(注意用 ;
代替 ,
)
而ffftw_malloc
大概应该是fftw_malloc
(开头去掉了一个f
)。
此外,编译器可能会为您提供错误的行号,我建议您转到这些行并仔细检查它们,这样您就可以学会自己进行调试 ;)
最后,main
return 是一个整数,所以 return 语句需要一个值。 (0
应该没问题。) 注: main
函数的特殊之处在于它在末尾隐含了一个 return 0;
,所以它是唯一具有 return 值的函数,您可以在其中 "fall off the end"。但是,如果您在 main
中使用 return 语句,则必须提供一个值。
错误消息几乎不言自明 - 您需要更改:
return;
至:
return 0;
原因是 main
return 是一个 int
,所以你需要一个值,即你不能只是 return "nothing".