变量将C函数作为非零输入,内部变为零

时间:2016-02-18 14:19:08

标签: c

我正在调试一段代码,发现当我在函数执行之前打印出一个变量时,它是非零的。然后将相同的变量用作函数的输入参数,但是当在该函数的开头打印出它时,它表示它为零。

在函数调用之外,它看起来像这样:

printf("sigma_b_m: %f \n",sigma_b_m);
oprq_init(sigma_b_m, b_m, r_m, x, P);

在函数调用中,我执行了以下操作:

void oprq_init(const float sigma_b_m, const float b[3], const float r[3], float K[16], float P[256]) {`
    printf("sigma_b_m: %f \n",sigma_b_m);
}

为了清晰起见,我删除了其余的功能,但printf行确实处于功能的最开始。

然后输出:

  

sigma_b_m:0.001745
  sigma_b_m:0.000000

知道它现在如何注册为0而不是0.001745,它告诉我它是在进入函数之前的吗?

1 个答案:

答案 0 :(得分:0)

好的,我意识到自己的愚蠢错误......头文件在#ifndef声明中有一个拼写错误...我很抱歉遇到麻烦的人和我的顽固。