24小时热门版块排行榜    

查看: 2386  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

eamtbfs

铜虫 (小有名气)


[交流] 【求助】帮忙看看哪错了error: invalid lvalue in assignment

我最近用到FFTW,就网上找了个简单例子来学习了下。但这个简单例子编译出错,不知道怎么回事。我网上查了查,也没搞清是FFTW语句的问题,还是gcc编译器的问题。请高手帮忙看看啊!

错误信息如下:
$gcc34 FFTW_example.c -lfftw3 -lm
FFTW_example.c: In function `main':
FFTW_example.c:35: error: invalid lvalue in assignment
FFTW_example.c:36: error: invalid lvalue in assignment

用gcc4.3也是一样出错。

这个FFTW的简单例子程序的网址在这里http://www.elisanet.fi/mnentwig/webroot/FFTW_example/index.html

程序比较小就贴在下面。是creal 和cimag那两行出错了
/* ****************************************************
* FFTW example
* Markus Nentwig, 2007
* This program is in the public domain
* ****************************************************/
#include
#include
#include
#include
#include

int main(void){
  /* ****************************************************
   * Allocate memory
   * ****************************************************/
  int n=128;
  fftw_complex* b1=fftw_malloc(sizeof(fftw_complex)*n);
  fftw_complex* b2=fftw_malloc(sizeof(fftw_complex)*n);

  /* ****************************************************
   * Create forward FFT plan from b1 into b2
   * ****************************************************/
  fftw_plan p1=fftw_plan_dft_1d(n, b1, b2, FFTW_FORWARD, FFTW_ESTIMATE);

  /* ****************************************************
   * Create reverse FFT plan from b2 into b1
   * ****************************************************/
  fftw_plan p2=fftw_plan_dft_1d(n, b2, b1, FFTW_BACKWARD, FFTW_ESTIMATE);

  /* ****************************************************
   * Generate a single sine wave cycle
   * ****************************************************/
  int i;
  for (i=0; i < n; ++i){
    creal(b1)=sin((double)i/(double)n*2.0*M_PI);
    cimag(b1)=0;
  }
  
  /* ****************************************************
   * Execute FFT from b1 into b2
   * ****************************************************/
  fftw_execute(p1);

  /* ****************************************************
   * Dump the "spectrum".
   * Result:
   * First bin ("DC  term" is zero
   * * i*n/2 in 2nd bin
   * * -i*n/2 in last bin
   * * all other bins are zero
   * ****************************************************/
  for (i=0; i < n; ++i){
    printf("%1.7f\t%1.7f\n", creal(b2), cimag(b2));
  };

  /* ****************************************************
   * IFFT back into b1
   * ****************************************************/
  fftw_execute(p2);
  printf("\n";

  /* ****************************************************
   * Result: Original waveform scaled by n
   * ****************************************************/
  for (i=0; i < n; ++i){
    printf("%1.7f\t%1.7f\n", creal(b1), cimag(b1));
  };

  /* ****************************************************
   * Clean up
   * ****************************************************/
  fftw_destroy_plan(p1);
  fftw_destroy_plan(p2);

  fftw_free(b1);
  fftw_free(b2);
  return 0;
}
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lucktroy

禁虫 (小有名气)

★ ★ ★
余泽成(金币+3): 谢谢参与应助! 2011-02-28 20:09:22
本帖内容被屏蔽

5楼2011-02-28 19:25:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答
★ ★ ★
eamtbfs(金币+1): 谢谢参与 2011-02-25 06:01:14
余泽成(金币+3): 谢谢参与应助! 2011-02-27 15:06:29
抄都没抄对咯
CODE:
    creal(b1[i])=sin((double)i/(double)n*2.0*M_PI);
    cimag(b1[i])=0;

CODE:
printf("%1.7f\t%1.7f\n", creal(b1[i]), cimag(b1[i]));

2楼2011-02-24 19:31:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eamtbfs

铜虫 (小有名气)


zzzzz

[ Last edited by eamtbfs on 2011-2-25 at 06:06 ]
3楼2011-02-25 06:04:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eamtbfs

铜虫 (小有名气)


引用回帖:
Originally posted by yalefield at 2011-02-24 19:31:36:
抄都没抄对咯
CODE:
    creal(b1[i])=sin((double)i/(double)n*2.0*M_PI);
    cimag(b1[i])=0;

CODE:
printf("%1.7f\t%1.7f\n", creal(b1[i]), cimag(b1[i]));


我从网页上帖过来的,不知怎么贴过来就变了。不过我编译的时候是用的网上下载的程序,我仔细看了,我编译的程序语法没有这样的错,但就是gcc报告error: invalid lvalue in assignment

请帮忙编译下,看看问题出在哪。多谢多谢!
4楼2011-02-25 06:05:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见