temp的作用c语言,C语言的问题,关于temp参数的一些知识

本文讨论了C语言中temp参数在函数调用时的重定义问题,特别是在DWT1D函数中。代码示例中出现了在函数参数已定义temp后,又在函数内部重复定义的情况,导致编译错误。解决方案是删除函数内部的temp数组定义,正确处理文件路径中的转义字符,并确保所有变量已正确定义。同时,指出了网上找到的代码可能存在诸多错误,需要仔细检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redefinition of formal parameter 'temp'

#include

#include

#define LENGTH 512

void Covlution(double data[], double core[], double cov[], int n, int m)

{ int i = 0;

int j = 0;

int k = 0;

for(i = 0; i < n; i++) { cov[i] = 0; }

i = 0;

for(j = 0; j < m/2; j++, i++)

{ for(k = m/2-j; k < m; k++ )

{ cov[i] += data[k-(m/2-j)] * core[k]; }

for(k = n-m/2+j; k < n; k++ )

{ cov[i] += data[k] * core[k-(n-m/2+j)];

}

}

for( i = m/2; i <= (n-m)+m/2; i++)

{ for( j = 0; j < m; j++)

{ cov[i] += data[i-m/2+j] * core[j];

}

}

i = (n - m) + m/2 + 1;

for(j = 1; j < m/2; j++, i++)

{ for(k = 0; k < j; k++) { cov[i] += data[k] * core[m-j-k]; }

for(k = 0; k < m-j; k++) { cov[i] += core[k] * data[n-(m-j)+k];

}

}

}

void DWT1D(double input[], double output[], double temp[], double h[], double g[], int n, int m)

{ double temp[LENGTH] = {0};

int i = 0;

Covlution(input, h, temp, n, m);

for(i = 0; i < n; i += 2)

{ output[i] = temp[i]; }

Covlution(input, g, temp, n, m);

for(i = 1; i < n; i += 2) { output[i] = temp[i]; }

Covlution(input, h, temp, n, m);

for(i = 0; i < n; i += 2) { output[i/2] = temp[i]; }

Covlution(input, g, temp, n, m);

for(i = 1; i < n; i += 2) { output[n/2+i/2] = temp[i];

}

}

void main()

{ double data[LENGTH]; double temp[LENGTH]; double data_output[LENGTH]; int n = 0; int m = 6;

int i = 0; char s[32];

static double h[] = {.332670552950, .806891509311, .459877502118, -.135011020010, -.085441273882, .035226291882}; static double g[] = {.035226291882, .085441273882, -.135011020010, -.459877502118, .806891509311, -.332670552950};

FILE *fp;

fp=fopen("data.txt","r");

if(fp==NULL)

{ printf("错误!找不到要读取的文件/"data.txt/"/n"); exit(1); }

while( fgets(s, 32, fp) != NULL )

{ fscanf(fp,"%d", &data[count]);

data[n] = atof(s);

n++;

}

DWT1D(data, data_output, temp, h, g, n, m);

fp=fopen("data_output.txt","w");

for(i = 0; i < n; i++)

{ printf("%f/n", data_output[i]);

fprintf(fp,"%f/n", data_output[i]);

}

fclose(fp);

}

Cpp1.cpp(32) : error C2082: redefinition of formal parameter 'temp'

G:\Cpp1.cpp(52) : error C2146: syntax error : missing ')' before identifier 'data'

G:\Cpp1.cpp(52) : error C2059: syntax error : ')'

G:\Cpp1.cpp(54) : error C2065: 'count' : undeclared identifier

Error executing cl.exe.

Cpp1.obj - 4 error(s), 0 warning(s)

补充:程序有几处错,你的32行

double temp[LENGTH] = {0};

这个是多余的定义(tmep已在参数中定义了)

另外

你程序中的\全写成/了

C/C++只有"\n",没有"/n"的

(如果网上抄的程序的话,会有很多错的)

如52行

printf("错误!找不到要读取的文件/"data.txt/"/n");

应该是

printf("错误!找不到要读取的文件\"data.txt\"\n");

(其它地方的/n也要改)

还有就是54行

fscanf(fp,"%d", &data[count]);

你的count没定义

(没研究你的程序,只是语法上看下)

追问:G:\Cpp1.cpp(52) : error C2146: syntax error : missing ')' before identifier 'data'  这个呢  我实在找不到错在哪里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值