【问题标题】:declared variable of type double gets automatically initialized to inf [duplicate]double 类型的声明变量自动初始化为 inf [重复]
【发布时间】:2018-08-02 12:35:49
【问题描述】:

我正在使用 gcc 运行我的代码。我有一个函数,我在其中声明了一个变量 X1,它被初始化为“inf”。

function(double nu, void *params) {
struct func_params *part= (struct func_params *)params;
double result;
*commands*
if (condition){
        double wb,X1;
        printf("inside if X1 %e \n",X1);
    }
return result;

此代码返回“如果 X1 inf 内部”。我从来没有遇到过这个问题,也没有对代码进行任何更改...知道可能是什么吗?

【问题讨论】:

  • 使用未初始化的变量意味着它们的值是分配时内存中的值(这是不可预测的,并且可能因一次执行而异)。

标签: c gcc


【解决方案1】:

这是未定义的行为,您的未初始化变量可以具有任何值,包括 inf 和 NaN。

当你使用它时,你会调用未定义的行为

【讨论】:

  • 好吧,我不知道这也可以包括 inf & NAN
  • 为什么不呢 - 它只是位序列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2019-05-02
相关资源
最近更新 更多