我正在调试一段代码,发现当我在函数执行之前打印出变量时,它是非零的。然后,同一个变量被用作函数的输入参数,但是当在该函数的开头打印它时,它说它为零。
在函数调用之外,它看起来像这样:
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 吗?
最佳答案
好吧,我意识到自己犯了一个愚蠢的错误...头文件的 #ifndef
语句中有一个拼写错误...对于那些麻烦的家伙和我的固执,我深表歉意。
关于c - 变量以非零形式进入 C 函数,在内部自行变为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35483934/