我正在调试一段代码,发现当我在函数执行之前打印出一个变量时,它是非零的。然后将相同的变量用作函数的输入参数,但是当在该函数的开头打印出它时,它表示它为零。
在函数调用之外,它看起来像这样:
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,它告诉我它是在进入函数之前的吗?
答案 0 :(得分:0)
好的,我意识到自己的愚蠢错误......头文件在#ifndef
声明中有一个拼写错误...我很抱歉遇到麻烦的人和我的顽固。