为什么C语言中总有error C2143: syntax error : missing ')' before 'constant'

我在主函数之外的源文件调用函数conv,但但调用时总会出现如下错误:
\conv.h(2) : error C2143: syntax error : missing ')' before 'constant'
\conv.h(2) : error C2143: syntax error : missing '{' before 'constant'
\conv.h(2) : error C2059: syntax error : '<Unknown>'
conv函数如下:
#include <stdio.h>
void conv(float x[],int m,float h[],int n,float y[],int l,float dt)
{
int k,i;
for(k=0;k<l;k++)
{
y[k]=0.0;
for(i=0;i<m;i++)
if((k-i)>=0&&(k-i)<=n-1)
y[k]=y[k]+x[i]*h[k-i]*dt;
}
}
感觉语句中没少什么啊,但为什么总有这样的错误,是因为主函数中的错误吗还是什么,求助各位高手啊

估计是你定义了#define m xx和#define n xx 或#define l xx等等了。这样,一些编译器就会把void conv(float x[],int m,float h[],int n,float y[],int l,float dt)中的m、n或l误认为是常量,从而产生你贴上来的错误提示。你把类似#define m xx定义中的字母改成大写,即改成形如#define M xx,再把主函数中对应的小写字母也改成大写,一般来说就OK了……
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-31
conv.h的第二行出的问题
相似回答