c - 变量以非零形式进入 C 函数,在内部自行变为零

标签 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 吗?

最佳答案

好吧,我意识到自己犯了一个愚蠢的错误...头文件的 #ifndef 语句中有一个拼写错误...对于那些麻烦的家伙和我的固执,我深表歉意。

关于c - 变量以非零形式进入 C 函数,在内部自行变为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35483934/

相关文章:

c++ - "hello"和 {"hello"} 有什么区别?

c - self 复制代码,如何在第一次迭代和后续迭代中实现不同的行为?

c - 二项式定理 - C 语言算法

c - C中如何给列表赋值

c - 分配和排序现有结构的指针数组

c - 如何检查来自标准输入的输入是否为空或换行符

c++ - 如何从系统日期获取昨天的日期并附加到字符串?

c++ - C/C++ 编译器如何处理具有不同值范围的类型之间的类型转换?

c - 具有 `fcn( char *, ...)` 的可变参数函数如何知道何时结束?

c - 具有随机字符的随机长度字符串