我肯定我在这里遗漏了一些明显的东西,但就是弄不清是什么
my repository
,我有一个名为ddpoly_2.c的文件,其中包含一个名“ddpoly2”的函数。我从tst5.c中的main函数调用这个函数。如果您查看tst5_2.c中的代码,我会给x赋值2,立即打印它,然后将它作为第三个参数传递给“ddpoly2”(这与调用模式应该是什么样的一样)。然后我立即从函数“ddpoly2”中打印x。我看到的是以下内容:
x outside: 2.000000
x inside : 0.000000
nc: 2
nd: 3
您可以看到,在函数被调用之前,x是2.000000,但在函数内部它变成了0.0000000。我肯定遗漏了一些显而易见的东西,但我想不出是什么。
P.S.我使用同一目录中的makefile编译代码。
编辑:此处包含代码的相关部分。
调用tst5_2.c中的函数:
int main(int argc, char *argv[])
{
//Used to determine which section gets its results printed.
float c[] = {1,1,1,0,0};
int nc = 2;
float x = 2.0;
float pd[] = {0,0,0,0,0};
int nd = 3;
printf("x outside: %f\n",x);
ddpoly2(c,nc,x,pd,nd);
}
在函数ddpoly2内打印:
#include <stdio.h>
void ddpoly2(float c[], int nc, float x, float pd[], int nd)
{
int nnd, j, i;
float cnst = 1.0;
printf("x inside : %f\n",x);
printf("nc: %d\n",nc);
printf("nd: %d\n",nd);
}