当我没有从返回double的函数返回值时,为什么我得到1.#QNB

时间:2015-12-15 08:54:53

标签: c function return double return-value

我在C中编写了一个菜单驱动的程序。所以当我调用一个函数时 我试图了解返回的工作原理。所以 我写了类似

的代码
double function_name(parameters){
    //some code here
if(condition here)
    return (x);
else
    return ;
}

int main( void ){
    //some code here
    double l = function_name(argument);
    printf("returns: %.4lf\n", l);
    return 0;
}

当代码进入else时,它会打印

  

输出:返回:1。#QNB

究竟是什么意思?

1 个答案:

答案 0 :(得分:0)

QNaN(是一个安静的非数字)是具有分数部分集的MSB的NaN。 QNaN,而不是SNaN(信令NaN)被允许继续通过浮点运算而不会引发异常。在这种情况下,由于我没有找到太多信息,我猜测是类似的。

当我从函数返回 NOTHING 并存储在浮动类型号中时,它产生了 1.#QNB < / p>