“错误”;未定义类型的使用无效';结构cmplx';取消引用指向不完整类型的指针;。如何修复它?

“错误”;未定义类型的使用无效';结构cmplx';取消引用指向不完整类型的指针;。如何修复它?,c,pointers,C,Pointers,我是C编程新手,我有一个别人写的代码,我只需要让它工作或编译它 # include <stdio.h> # include <math.h> # define AP_INC 1 # define H_INC 4 /* plot the power spectrum */ do_peak(ftdat,n_out,recno) struct cmplx *ftdat; int n_out; int recno; { extern float

我是C编程新手,我有一个别人写的代码,我只需要让它工作或编译它

 # include <stdio.h>
 # include <math.h>

 # define AP_INC        1
 # define H_INC     4

/* plot the power spectrum */
do_peak(ftdat,n_out,recno)
struct cmplx *ftdat;
int n_out;
int recno;
{
extern float del_f;
extern float del_t;
extern FILE *pkfile;
extern int ilowpk;
extern int ihipk;
float time;
float fpeak;
float pkval;
int ipeak;
int i;

/* find the peak of the spectrum */
pkval = ftdat[ilowpk];
ipeak = ilowpk;

if(ilowpk < ihipk){
    for(i = ilowpk+1; i < ihipk; i++){
        if(ftdat[i] > pkval){
            pkval = ftdat[i];
            ipeak = i;
        }
    }
} else {
    for(i = ilowpk+1; i < n_out; i++){
        if(ftdat[i] > pkval){
            pkval = ftdat[i];
            ipeak = i;
        }
    }
    for(i = 0; i < ihipk; i++){
        if(ftdat[i] > pkval){
            pkval = ftdat[i];
            ipeak = i;
        }
    }
}

/* convert ipeak to a frequency */
fpeak = (float)ipeak*del_f;

/* compute the time */
time = (float) recno*del_t;

/* write to output file */
fprintf(pkfile,"%f %g\n",time,fpeak);
return;
}
#包括
#包括
#定义AP_公司1
#定义H_公司4
/*绘制功率谱图*/
do_peak(ftdat、n_out、recno)
结构cmplx*ftdat;
int n_out;
int recno;
{
外部浮标;
外部浮球;
外部文件*pkfile;
外部-内部ilowpk;
外部国际ihipk;
浮动时间;
浮子峰;
浮动pkval;
int ipeak;
int i;
/*找到光谱的峰值*/
pkval=ftdat[ilowpk];
ipeak=ilowpk;
if(ilowpkpkval){
pkval=ftdat[i];
ipeak=i;
}
}
}否则{
对于(i=ilowpk+1;ipkval){
pkval=ftdat[i];
ipeak=i;
}
}
对于(i=0;ipkval){
pkval=ftdat[i];
ipeak=i;
}
}
}
/*将ipeak转换为频率*/
fpeak=(float)ipeak*del_f;
/*计算时间*/
时间=(浮动)记录*删除;
/*写入输出文件*/
fprintf(pkfile,“%f%g\n”,时间,fpeak);
返回;
}
我得到的错误是“无效使用未定义的类型'struct cmplx'取消对不完整类型的引用指针” 您可以查看此链接了解更多信息 请务必让我知道如何修理它。 请记住,我不懂C,只懂matlab。 非常感谢。
Anil.

pkval=ftdat[ilowpk];请给我一些一致的款式。而且,代码远未达到最小值……也可以考虑用原型来代替C,而不是使用前ANSI-C。这是我使用CODBROCK时所得到的。请告诉我如何修复它?感谢您必须提供struct cmplx的实现。它可能在某个头文件的某个地方。您必须
包含“cmplx.h”或类似的内容。添加include“cmplx.h”尚未解决此问题。