【问题标题】:Assign Infinity value to a variable将 Infinity 值分配给变量
【发布时间】:2019-01-21 11:43:00
【问题描述】:

您好,我想在我的自动启动代码中将 Infinity 值分配给一个变量,我将使用 math.h 但它给出了 qac 警告标识符未声明

我已包含math.h 头文件,但 qac 给我一个警告标识符尚未声明。有没有办法赋值?

# include <math.h>
int Calcula(x_val ,y_val)
{ 
 if(x_val >y_val )
  return INFINITY
}

// this code is not exact code ..

它应该返回 INFINITY ,

【问题讨论】:

  • 您的函数仅在特定情况下返回一个值,否则不返回任何值。 INFINITY 不能被 int 变量保存,它是 float 类型的实现定义常量。
  • int 没有任何无穷大。它只能保存一个非常有限的值。

标签: c autosar


【解决方案1】:

从reference 来看,INFINITY 是一个扩展为浮点类型的宏。

如果实现支持浮点无穷大,宏 INFINITY 扩展为 float 类型的常量表达式,其计算 为正或无符号无穷大。

因此,您的代码应修改如下

#include <stdio.h>
#include <math.h>

float Calcula(float x_val, float y_val)
{
    if( x_val > y_val ) {return INFINITY; }
    else { /* your else if you have one */ }
}

int main()
{   
    float a=4.0, b=2.0;
    float ret;
    ret = isinf(Calcula(a, b));
    printf("Return value is %f", ret);

    return 0;
}

这应该打印 1。

【讨论】:

    猜你喜欢
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多